2016-05-17 4 views
1

This link enthält Informationen über OOB in TCP.Was ist oob in func (* UDPConn) ReadMsgUDP?

mit Out-of-Band-Daten wollen wir die Byte-Stream-Service-Schicht auf der Sendeseite diese Daten vor anderen Daten zu senden, dass es gepuffert hat. Auf ähnliche Weise möchten wir, dass das empfangende Ende diese Daten an seinen Benutzerprozess vor allen Daten weitergibt, die es gepuffert haben könnte.

Aber was ist mit UDP?

In Golang benötigt die Funktion ReadMsgUDP eine oob Bytesektion.

func (c *UDPConn) ReadMsgUDP(b, oob []byte) (n, oobn, flags int, addr *UDPAddr, err error) 

Was ist die oob für? Gibt es Anwendungsfälle im Open Source-Code? Oder sollte ich PacketConn anstelle von UDPConn verwenden?

+3

Mein Take ist, dass dieser Aufruf 'recv (2)' syscall nur umschließt, der den 'oob' Parameter hat, egal welche Art von Socket es ist. Auf meinem System sagt 'man 2 send'' 'oob' 'wird nur mit' SOCK_STREAM's Sockets benutzt, und UDP sind nicht diese. – kostix

Antwort

0

Nun, wie ich es versucht habe, wenn Sie andere Informationen (wie pktinfo) lokale Adresse mit der Einstellung syscall.setsockoption erhalten möchten, werden Sie es brauchen. Dies geschieht, wenn Sie kein verbindungsorientiertes UDP möchten.

+0

Aber ich habe keine Ahnung von den Para "Flags" so weit – TheHan