![]() |
WinSock-Problem
Ich will mit Hilfe der WinSock-Schnittstelle eine Verbindung zu einem Server aufbauen. Die Verbindungsherstellung beginnt auch zum richtigen Host, aber leider zum falschen Port. Ich will zum Port 21 connecten, aber meine Firewall sagt mir, ich will zu 5367. Keine Ahnung ob das stimmt, aber jedenfalls kann die Verbindung nicht hergestellt werden (Fehler WSAECONNREFUSED). Folgender Code ist relevant:
Code:
Weiß einer Rat?
Sock := Socket(AF_INET,SOCK_STREAM,PF_UNSPEC);
ZeroMemory(@SockAddr,SizeOf(TSockAddr)); SockAddr.sin_family := AF_INET; SockAddr.sin_port := 3333; SockAddr.sa_family := AF_INET; Bind(Sock,SockAddr,SizeOf(TSockAddr)); ZeroMemory(@SockAddr,SizeOf(TSockAddr)); SockAddr.sin_family := AF_INET; SockAddr.sin_port := 21; SockAddr.sin_addr.S_addr := host; if Connect(Sock,SockAddr,SizeOf(TSockAddr)) = 0 then begin recv(Sock,buf,Length(buf),0); log.Items.Add(buf); end else begin Error := WSAGetLastError; Form1.Caption := 'Es konnte keine Verbindung hergestellt werden: ' + IntToStr(Error); end; ShutDown(Sock,2); WSACleanUp; |
Hallo,
so wie ich das sehe hast du einiges doppelt in deinem Quellcode. Ich würde es mal so probieren:
Code:
Ein gutes Tutorial zur Socket Programmierung findest du
Sock := Socket(AF_INET,SOCK_STREAM,0);
ZeroMemory(@SockAddr,SizeOf(TSockAddr)); SockAddr.sin_family := AF_INET; SockAddr.sin_addr.S_addr := host; SockAddr.sin_port := 21; if Connect(Sock,SockAddr,SizeOf(TSockAddr)) = 0 then begin recv(Sock,buf,Length(buf),0); log.Items.Add(buf); end else begin Error := WSAGetLastError; Form1.Caption := 'Es konnte keine Verbindung hergestellt werden: ' + IntToStr(Error); end; ShutDown(Sock,2); WSACleanUp; ![]() Mfg Salomon |
Ob man das bind() braucht oder nicht, weiß ich nicht, es macht aber keinen Unterschied. Nachwievor das gleiche Problem.
|
OK, das Tutorial ist gut. In dem Tutorial, das ich benutzt hab, hat ein Teil gefehlt. Aus
Code:
muss ich
SockAddr.sin_port := (21);
Code:
machen, dann klappts. Vielen Dank!
SockAddr.sin_port := htons(21);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:06 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