Hi Leute,
mit Delphi bin ich eigentich sehr bewandert, nur mit den TCP/IP Objekten bin ich blutiger Anfänger.
Ich wollte gerne einen Proxy-Server bauen der Pakete stumpf an eine beliebige IP umleitet. Leider taucht ein Fehler auf den ich mir nicht erklären kann.
Bitte schaut euch meinen Code an. Es ist sicherlich ein Verständnisproblem in der Funktionsweise der Sockets.
PS: mit den Winsocks (VB6) hatte ich nie Probleme. Ich denke mein Fehler ist das ich die Sockets in Delphi wie einen Winsock benutzte^^.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48:
| procedure Tmain.FormCreate(Sender: TObject); begin server.Port := 1000; server.Open; Addlog('Proxy listen'); end;
procedure Tmain.serverClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin Addlog('Client hat sich verbunden');
client.Address := 'xxx.xxx.xxx.xxx'; client.Port := 1000; client.Open; end;
procedure Tmain.serverClientRead(Sender: TObject; Socket: TCustomWinSocket); var msg : string; begin msg := Socket.ReceiveText;
while server.Active = false do begin sleep(100); Application.ProcessMessages; end;
addlog('proxy->server'); client.Socket.SendText(msg); end;
procedure Tmain.clientRead(Sender: TObject; Socket: TCustomWinSocket); var msg : string; begin msg := Socket.ReceiveText;
while client.Active = false do begin sleep(100); Application.ProcessMessages; end;
addlog('proxy->client'); Server.Socket.SendText(msg); end; |
Die Fehler tauchen gleich beim ersten oder zweiten ClientRead oder ServerClientRead auf und immer in der letzten Zeile, also beim senden an die Partnerverbindung.
schon einmal herlzichen Dank im Voraus
Mit freundlichewn Grüßen
Tobi