![]() |
Falscher Port bei WinSock-Verbindungsaufbau
Mit folgendem Code baue ich eine Verbindung auf:
Delphi-Quellcode:
Leider sagt mir meine Firewall, ich würde zu Port 1032 connecten und nicht zu Port 25. Mir fällt aber leider keine Idee ein, dies zu überprüfen. Hat da einer eine Idee?
Sock := Socket(AF_INET,SOCK_STREAM,0);
ZeroMemory(@SockAddrIn,SizeOf(TSockAddr)); if Sock <> INVALID_SOCKET then begin with SockAddrIn do begin sin_family := AF_INET; sin_port := htons(25); sin_addr.S_addr := inet_addr(@Adress[1]); end; if connect(Sock,SockAddrIn,SizeOf(SockAddr_In)) = 0 then begin Write('Ein ServerSocket wurde gefunden'); ShutDown(Sock,2); end else begin Write('Es wurde kein Server gefunden. Fehler ',WSAGetLastError); end; |
Sieh dir mal die Meldung von der Firewall genauer an. Ich nehme an, dass die den Port 25 als Ziel schon erlauben wird - vielleicht gibts aber Probleme mit dem Quellport (der in diesem Fall wahrscheinlich 1032 ist).
Bei Socket-Verbindung gibts immer einen lokalen Port (das ist der der die Verbindung aufbauen will - der Port wird automatisch vom OS bestimmt) und einen Remote Port (das ist der "Server"). Bsp: ClientProgramm Firewall ServerProgramm (will zu Server, Port 25 verbinden) Port 25 offen lokaler Port (1032) ------------->|-----------> remote Port 25 Die Firewall sieht also, dass der ClientPort 1032 zum ServerPort 25 will. Wenn das Regelwerk dies nicht zulässt, gehts natürlich nicht. |
Nein, nein, meine Firewall (Kerio) zeigt mir an, der Remoteport sei 1032. Der Local Port wird auch angegezeigt, der ist natürlich jedesmal ein anderer.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz