Avatar billede insaneboy Nybegynder
10. juni 2004 - 14:14 Der er 1 kommentar

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.
Avatar billede insaneboy Nybegynder
10. juni 2004 - 15:03 #1
Okay, fandt løsningen, man skulle bare sætte service.sin_addr.S_addr til INADDR_ANY, eller '0.0.0.0', så lytter den simpelthen bare på alle interfaces..
Så blev jeg så meget klogere :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester