Ich bereite nur etwas Code auf, den wir vor einiger Zeit geschrieben haben, und habe bemerkt, dass für einen Udp-Socket 0 als Verbindung behandelt wird.Unter Linux, kann recv jemals 0 auf UDP zurückgeben?
Ich bin ziemlich sicher, dass dies das Ergebnis der Portierung der gleichen recv-Schleife aus der äquivalenten TCP-Version war. Aber ich frage mich. Kann recv 0 für udp zurückgeben? auf TCP signalisiert es das andere Ende hat die Verbindung geschlossen. UDP hat nicht das Konzept einer Verbindung also kann es 0 zurückgeben? und wenn es möglich ist, was ist es?
Hinweis: die Man-Seite in Linux unterscheidet nicht UDP und TCP für einen Return-Code von Null, weshalb wir den Code einchecken konnten.
Sind die UDP-Buchsen angeschlossen oder nicht? –
Sie können "connect" auf UDP-Sockets aufrufen, aber das bedeutet, dass dem UDP-Socket eine Remote-IP-Adresse/Port zugewiesen wird. Damit können Sie einfach "send" und "recv" ohne sendto, recvfrom aufrufen. Ich glaube, es fungiert auch als Filter und erlaubt Ihnen nur, Udp-Datagramme nur von dieser Adresse zu erhalten. In gewisser Weise sind sie miteinander verbunden, aber nicht mit TCP. – Matt