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:
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;
Weiß einer Rat?