घर
Top.Mail.Ru Yandeks.Metrika
फोरम: "पकड़ो";
वर्तमान संग्रह: 2003.09.01;
डाउनलोड करें: [xml.tar.bz2];

नीचे

मैं एक प्रॉक्सी सर्वर लिख रहा हूं। फिर भी आपकी मदद की जरूरत है। इसी तरह की शाखाएँ खोजें


SergP   (2003-08-13 14:06) [0]

Так как старый топик уполз неизвестно куда при хакерской атаке, то создаю новый.
Вобщем спасибо nikkie и Poveli за помощь. Я пока написал вот такой код: (но он еще не работает нормально. Иногда подвисает браузер, иногда выскакивают ошибки связаные с сокетами). Может кто-то подскажет что я не так делаю?
Пока разбор запроса не писал для упрощения отладки, конектюсь через внешний прокси.

...
था
Form1: TForm1;
s,r:string;
s1,r1:boolean;
i: पूर्णांक;
req:array[0..50] of string; // массив с запросами
CS:array[0..50] of TClientSocket;
कार्यान्वयन

{$ R * .DFM}
// Создание клиентсого сокета в связи с новым запросом браузера
procedure TForm1.ServerSocketClientRead(Sender: TObject;
गर्तिका: TCustomWinSocket);
था
j,handl:integer;
शुरू करना
memo1.lines.add("событие ClientRead Серверного сокета");
j: = 0;
while assigned(CS[j]) do inc(j);

req[j]:=socket.ReceiveText; //сохранение данных запроса
handl:=socket.SocketHandle;
memo1.lines.add("хендл соединения "+inttostr(handl));
memo1.lines.add (s);
CS[j]:=TClientSocket.Create(self);
CS[j].Host:=Edit1.text;
CS[j].Port:=Strtoint(edit2.text);
CS[j].tag:=handl;
CS[j].OnWrite:=ClientSocketWrite;
CS[j].OnRead:=ClientSocketRead;
CS[j].ClientType:=ctNonBlocking;
CS[j].active:=true;
अंत;

procedure TForm1.ClientSocketConnecting(Sender: TObject;
गर्तिका: TCustomWinSocket);
शुरू करना
memo1.Lines.add("Клиентский сокет сконектился");
अंत;

// Передача данных из клиентского сокета в серверный
procedure TForm1.ClientSocketRead(Sender: TObject;
गर्तिका: TCustomWinSocket);
था
j,handl:integer;
शुरू करना
memo1.lines.add("событие OnRead клиентского сокета");
handl:=TClientSocket(Sender).Tag;
r:=socket.ReceiveText;
//memo1.lines.add(r);
memo1.Lines.add(inttostr(handl));
for j:=0 to serversocket.Socket.ActiveConnections-1 do
शुरू करना
if ServerSocket.Socket.Connections[j].SocketHandle=handl
then serversocket.socket.connections[j].sendtext(r);
अंत;
अंत;

// Запись из массива в клиентский сокет
प्रक्रिया TForm1.ClientSocketWrite (प्रेषक: Tobject;
गर्तिका: TCustomWinSocket);
था
j,handl:integer;
शुरू करना
handl:=TClientSocket(Sender).Tag;
j के लिए: = 0 से 50 करते हैं
if assigned(CS[j]) and (cs[j].tag=handl) then
शुरू करना
socket.SendText(req[j]);
अंत;
memo1.lines.add("событие OnWrite клиентского сокета");
अंत;

प्रक्रिया TForm1.FormActivate (प्रेषक: TObject);
शुरू करना
serversocket.Active:=true;
अंत;

प्रक्रिया TForm1.FormClose (प्रेषक: Tobject; var क्रिया: TCloseAction);
शुरू करना
serversocket.Active:=false;

अंत;

// Уничтожение клиентского сокета
प्रक्रिया TForm1.ServerSocketClientDisconnect (प्रेषक: TObject;
गर्तिका: TCustomWinSocket);
था
j,handl:integer;
शुरू करना
handl:=socket.SocketHandle;
j के लिए: = 1 से 50 करते हैं
if assigned(CS[j]) and (CS[j].tag=handl) then
शुरू करना
CS[j].active:=false;
CS[j].Free;
cs[j]:=nil;
अंत;

अंत;

समाप्त।



Gigabyte   (2003-08-13 20:48) [1]

Воспользуйса Indy - idMappedPortTCP или зайди на мой сайт там уже одна выложена



SergP   (2003-08-13 22:07) [2]


> Gigabyte © (13.08.03 20:48) [1]
> Воспользуйса Indy - idMappedPortTCP


Ну даже не знаю. Если я им воспользуюсь, смогу ли редактировать запросы браузера и данные, которые будут передаваться обратно?


> или зайди на мой сайт
> там уже одна выложена


Зашел, нашел, скачал. Но она на Delphi6 написана, а у меня щас Delphi5, да и экзешник не хочет работать, какую-то библиотеку просит. Ну с ним я позже буду разбираться - на работе, там у меня стоит D6 а то дома не хочется ставить D6 (вернее не могу. CD-ROM накрылся).



имя   (2003-08-13 22:12) [3]

मॉडरेटर द्वारा हटा दिया गया



имя   (2003-08-13 22:12) [4]

मॉडरेटर द्वारा हटा दिया गया



имя   (2003-08-13 22:12) [5]

मॉडरेटर द्वारा हटा दिया गया



имя   (2003-08-13 22:12) [6]

मॉडरेटर द्वारा हटा दिया गया



имя   (2003-08-13 22:13) [7]

मॉडरेटर द्वारा हटा दिया गया



имя   (2003-08-13 22:13) [8]

मॉडरेटर द्वारा हटा दिया गया



имя   (2003-08-13 22:13) [9]

मॉडरेटर द्वारा हटा दिया गया



имя   (2003-08-13 22:13) [10]

मॉडरेटर द्वारा हटा दिया गया



पन्ने: 1 पूरी शाखा

फोरम: "पकड़ो";
वर्तमान संग्रह: 2003.09.01;
डाउनलोड करें: [xml.tar.bz2];

ऊपर





मेमोरी: 0.58 एमबी
समय: 0.034 c
1-1390
imp403
2003-08-16 12:57
2003.09.01
64x आइकन


3-1314
gsvserg
2003-08-08 15:25
2003.09.01
क्या ऐसा अनुरोध करना संभव है?


6-1539
पर्व
2003-06-25 13:19
2003.09.01
सॉकेट की समस्या


3-1273
DIMM
2003-08-11 17:22
2003.09.01
DBLookupCombobox पूरी तरह से नहीं खुलता है। यानी मैं सब कुछ देखना चाहता हूं


14-1617
हड्डियों
2003-08-13 14:58
2003.09.01
धन्यवाद यूरी फेडोरोव और अन्य मास्टर।





अफ्रीकी अल्बानियन अरबी भाषा अर्मेनियाई आज़रबाइजानी बस्क बेलारूसी बल्गेरियाई कैटलन सरलीकृत चीनी) चीनी पारंपरिक) क्रोएशियाई चेक डेनिश डच अंग्रेज़ी एस्तोनियावासी फिलिपिनो फिनिश फ्रेंच
गैलिशियन् जॉर्जियाई जर्मन यूनानी हाईटियन यहूदी हिंदी हंगरी आइसलैंड का इन्डोनेशियाई आयरिश इतालवी जापानी कोरियाई लात्वीयावासी लिथुआनियाई मेसीडोनियन मलायी मोलतिज़ नार्वेजियन
फ़ारसी पोलिश पुर्तगाली रोमानियाई रूसी सर्बियाई स्लोवाक स्लोवेनियाई स्पेनिश स्वाहिली स्वीडिश थाई तुर्की यूक्रेनी उर्दू वियतनामी वेल्श यहूदी बंगाली बोस्नियाई
सिबुआनो एस्पेरांतो गुजराती हौसा हमोंग ईग्बो जावानीस कन्नड़ खमेर लाओ लैटिन माओरी मराठी मंगोलियन नेपाली पंजाबी सोमाली तामिल तेलुगु योरूबा
ज़ुलु
Английский Французский Немецкий Итальянский Португальский Русский Испанский