用于非阻塞数据报套接字,如UDP, 当我在套接字上调用write()/ send()时,如果要写入的字节是1000字节, 但是如果我经常写,也许写(发送)缓冲区是不够的, 例如,只有200字节的缓冲区可用。 然后我会写200字节或0字节?返回的错误是EAGAIN还是其他任何错误?
对于套接字上的read()/ recv(),每次调用它们只会返回1个数据报,是不是?
谢谢!
答案 0 :(得分:1)
如果要写入的字节是1000字节,但是如果我经常写入,可能写入(发送)缓冲区是不够的,例如,只有200字节缓冲区可用。然后我会写200个字节或0个字节?
零。
返回的错误是EAGAIN还是其他任何错误?
EAGAIN
或EWOULDBLOCK
,具体取决于您的平台。
read()怎么样?
它将返回完整的UDP数据报或零。
这是UDP的主要属性。