非阻塞数据报套接字,读写

时间:2013-06-17 08:26:22

标签: sockets network-programming udp

用于非阻塞数据报套接字,如UDP, 当我在套接字上调用write()/ send()时,如果要写入的字节是1000字节, 但是如果我经常写,也许写(发送)缓冲区是不够的, 例如,只有200字节的缓冲区可用。 然后我会写200字节或0字节?返回的错误是EAGAIN还是其他任何错误?

对于套接字上的read()/ recv(),每次调用它们只会返回1个数据报,是不是?

谢谢!

1 个答案:

答案 0 :(得分:1)

  

如果要写入的字节是1000字节,但是如果我经常写入,可能写入(发送)缓冲区是不够的,例如,只有200字节缓冲区可用。然后我会写200个字节或0个字节?

零。

  

返回的错误是EAGAIN还是其他任何错误?

EAGAINEWOULDBLOCK,具体取决于您的平台。

  

read()怎么样?

它将返回完整的UDP数据报或零。

这是UDP的主要属性。