kum*_*mar 28 sockets linux network-programming tcp runtime-error
我知道read()是一个阻塞调用,除非我使套接字无阻塞.所以我希望read()调用请求4K数据应该返回一个正值(没有读取的字节数)或错误的-1(客户端可能的连接重置等).我的问题是:read()可以在任何场合返回'0'吗?
我这样处理read():
if ((readval = read(acceptfd, buf, sizeof(buf) - 1)) < 0)
{
}
else
{
buf[readval] = 0;
//Do some thing with data
}
Run Code Online (Sandbox Code Playgroud)
如果read()返回零,这段代码就会爆炸,我知道如何修复它.但是read()有可能返回零吗?
Ser*_*kov 51
当TCP连接在一侧关闭时,另一侧的read()返回0字节.
归档时间: |
|
查看次数: |
36119 次 |
最近记录: |