Fehler: Adresse wird bereits verwendet, während Socket mit Adresse verbunden ist, aber die Portnummer wird von `netstat` frei angezeigt

Ich versuchte mich zu binden meine socket(server-socket an port-Nummer 8000. Es funktionierte und hat den job für mich. Am Ende der code, den ich in der Nähe der Buchse. Den nächsten Augenblick habe ich meinen code wieder und es zeigt mir, dass die Adresse bereits in Benutzung ist. Ich habe gedruckt, die Bedeutung der Fehlerwerte strerror(errno); um zu sehen, ob mein code richtig funktioniert an jeder Stelle. Um zu überprüfen, ob der port frei ist, ich habe es mit netstat aber es zeigt, dass die port-Nummer 8000 ist kostenlos. Es passierte mir oft. Jedes mal, wenn ich dann warten Sie ein paar Sekunden und dann beginnt es wieder zu arbeiten. Ich bin mit der c-Sprache. Also, was ist er Grund für dieses Verhalten von meinem OS.

Nach ein paar Sekunden habe ich den code ausführen und dann funktioniert es.

anirudh@anirudh-Aspire-5920:~/Desktop/testing$ sudo ./a.out 
Socket Creation: Success
File open: Success
Socket Bind: Address already in use
Socket Listen: Address already in use
^C
anirudh@anirudh-Aspire-5920:~/Desktop/testing$ sudo netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1348/lighttpd   
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      984/sshd        
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1131/cupsd      
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      1211/mysqld     
tcp6       0      0 :::22                   :::*                    LISTEN      984/sshd        
tcp6       0      0 ::1:631                 :::*                    LISTEN      1131/cupsd      
anirudh@anirudh-Aspire-5920:~/Desktop/testing$ sudo ./a.out 
Socket Creation: Success
File open: Success
Socket Bind: Address already in use
Socket Listen: Address already in use
^C
anirudh@anirudh-Aspire-5920:~/Desktop/testing$ 

InformationsquelleAutor der Frage Durin | 2011-02-24

Schreibe einen Kommentar