如果 select 返回可读,结果只读到 0 字节,这是什么情况? 发表于 2015-03-06 | 分类于 unix网络编程 对端关闭,可读,read 返回 0,表示已经读到文件末尾。 read返回0的唯一条件是对方gracefully close了socket select > 0,表示套接字里有东西, read = 0,表示里面的东西是“对方关闭连接”。 当select出错时,会将接口置为可读又可写。这时就要通过判断select的返回值为-1来区分。