繁体   English   中英

应该何时连接数据报套接字?

[英]When should a datagram socket be connected?

我在C中工作,使用POSIX套接字API。

我不确定何时连接数据报套接字是合适的。 据我了解,UDP是无连接的,SOCK_DGRAM套接字使用UDP。 那么当在数据报套接字上使用connect()和accept()时会发生什么?

在我看来,连接它们并使用send()/ recv()比不连接它们和使用sendto()/ recvfrom()更容易。

连接时套接字的功能是否有区别,或者这仅仅是一种抽象?

当您希望send()使用默认目标对等体的便利性而不是使用sendto()显式指定目标时,数据报套接字上的connect()是合适的。 没有功能差异。

connect()到AF_UNSPEC地址将清除数据报套接字的默认对等体。 (我认为,这最后一种行为得到了广泛支持,但最近才正式化 。)

数据报套接字上的connect()会将recv() s限制为源自对等体的数据。

无论“连通性”如何,数据报套接字上的accept()都是错误(EOPNOTSUPP)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM