Loopback virker ikke med min winsock server
Hej :)Jeg sidder og koder en server ved hjælp af Winsock API'en. Det er lykkedes mig at få serveren til at lytte, acceptere indkommende forbindelser og lave en seperat thread til dem, så det hele virker egentlig.
Mit problem er, at jeg sagtens kan tilslutte mig til serveren ved at bruge min IP-adresse på netkortet (192.168.1.10), men ikke loopback-ip'en (127.0.0.1). Jeg vil gætte på at problemet ligger når jeg kalder bind(). Jeg gør det sådan her (koden er i Delphi, men det er de samme API'er):
var
LocalHost: array[ 0 .. 127] of char;
Phe : PHostEnt;
LocalIP: PChar;
begin
GetHostname( LocalHost, sizeof(LocalHost) );
phe := GetHostByName( LocalHost);
service.sin_family := AF_INET;
service.sin_addr := PInAddr( phe^.h_addr^ )^;
service.sin_port := htons( listenport );
if ( bind( ListenSocket, service, sizeof(service) ) = SOCKET_ERROR ) then begin
//TODO: Inform again
result := -1;
Quit;
Exit;
end;
end;
Programmet virker egentlig fint, jeg synes bare det virker "ufærdigt" når det ikke lytter på loopback, men jeg kan ikke lige gennemskue hvorfor.
