2010-11-09 14 views
14

का उपयोग कर प्रॉक्सी सर्वर मैं इंडी के लिए नया हूं और मैं इसके साथ एक सरल प्रॉक्सी-सर्वर बनाना चाहता हूं। यह एक बड़ी पुस्तकालय है, और मुझे नहीं पता कि कहां से शुरू करना है। जब क्लाइंट सर्वर से कनेक्ट होता है, ऑनएक्स्यूच्यूट फ़ायर हो जाता है और पैरामीटर (AContext.Connection) के रूप में क्लाइंट कनेक्शन प्राप्त करता है। मुझे लगता है कि के लिए क्या कार्यों का उपयोग करना चाहिएइंडी

[client connection] := AContext.Connection 
read host/port from [client connection] 
[remote connection] := connect to host/port 
while both connections alive: 
    if data available in [client connection]: 
    read data from [client connection] 
    write data to [remote connection] 
    if data available in [remote connection]: 
    read data from [remote connection] 
    write data to [client connection] 

सवाल है:

मैं निम्नलिखित करना चाहते हैं? उनमें से कई के साथ कनेक्शन ऑब्जेक्ट में IOHandler संपत्ति है। कृपया सहायता कीजिए।

मैं इंडी का उपयोग कर रहा हूं जो डेल्फी -2010 के साथ जहाजों का उपयोग कर रहा है।

उत्तर

19

इंडी के अपने प्रॉक्सी घटक हैं जो आप पूछ रहे हैं। शुरुआती स्थानों के रूप में TIdMappedPortTCP और TIdHTTPProxyServer घटकों को देखें।

TIdMappedPortTCP एक सामान्य उद्देश्य प्रॉक्सी है जो केवल कच्चे डेटा को आगे और आगे भेजता है। आप उस कनेक्शन के लिए लक्षित होस्ट/पोर्ट को गतिशील रूप से कॉन्फ़िगर करने के लिए अपने OnConnect ईवेंट का उपयोग कर सकते हैं (जैसे क्लाइंट से इसे पढ़कर), या आप अपने कनेक्शन के लिए MappedHost और MappedPort गुणों को स्थिर रूप से सेट कर सकते हैं। डेटा की संशोधित करने के लिए आप इसके OnExecute और OnOutboundData ईवेंट का उपयोग कर सकते हैं क्योंकि यह आवश्यक होने पर प्रॉक्सी से गुज़रता है।

TIdHTTPProxyServer केवल HTTP आधारित प्रॉक्सी, जहां ग्राहक HTTP GET, POST, HEAD, और CONNECT क्रियाओं का उपयोग करता है, लक्ष्य होस्ट/पोर्ट करने के लिए संपूर्ण URL निर्दिष्ट करने के लिए एक विशेष प्रॉक्सी है, और फिर से गुजरता HTTP हेडर और वापस डेटा और आवश्यकतानुसार (CONNECT आमतौर पर फ़ायरवॉल के माध्यम से एक एसएसएल/टीएलएस कनेक्शन प्रॉक्सी करने के लिए प्रयोग किया जाता है)।

+6

वास्तव में बुद्धिमान सलाह, धन्यवाद! दोनों घटक 'स्रोत बहुत उपयोगी हैं। अगर कोई दिलचस्पी लेता है, तो आखिर में मैं ऐसा कुछ लेकर आया: http://pastebin.com/ixt2gssD – Frantic

+0

पेस्टबिन पर आपका कोड मेरा दिन बचाया। धन्यवाद फ्रैंटिक। –

संबंधित मुद्दे