我有连接到服务器的客户端iOS应用程序。 它使用非阻塞套接字。
int fl;
fl=fcntl(s,F_GETFL,0);
fcntl(s,F_SETFL, fl | O_NONBLOCK);
int set = 1;
setsockopt(s, SOL_SOCKET, SO_NOSIGPIPE, (void *)&set, sizeof(int));
read
read
但并非总是如此。有时连接会丢失,但会返回-1。
是否有类似eof
的内容可供检测?
答案 0 :(得分:0)
0是EOF。如果有错误,则读取返回-1,您应该查看errno以查看它是什么。检测TCP中断连接的唯一可靠方法是至少写入两次。