2017-02-15 2 views
1

Ist es möglich, leere Nutzdaten mit recvfrom() mit SOCK_DGRAM basierten Sockets zu empfangen? Der Server ist nur an dem Client-Header interessiert, um ihm eine Nachricht zurückzusenden (d. H. Einzelne Nachricht, nur Sendeprotokoll).Empfangen von leeren Nutzdaten mit recvfrom bei Verwendung von SOCK_DGRAM?

+0

Ja. Sie können Null-Datagramme mit UDP senden. – EJP

+0

@EJP Wie? 'recvfrom()' blockiert niemals auf Nulllängen und versucht, ein leeres Paket zu senden, indem beispielsweise 'cat/dev/null | nc -u 127.0.0.1 1234' mit 'recvfrom()' in beschäftigt warten tut nichts. – user7434748

+0

Mit 'send()', oder 'sendto()', die einen Nulllängenparameter liefern. 'recvfrom()' blockiert, bis ein Datagramm empfangen wird oder ein Fehler auftritt. – EJP

Antwort

0

0-dimensionale Datagramme sind aus der Socket-API-Perspektive und mindestens den Protokollen IP, UDP, UNIX perfekt gültig: man kann sie senden und empfangen.

Verwandte Themen