当我使用Web浏览器测试我的程序时,我可以写入套接字/ FD就好了,所以我决定循环并切断连接,并注意到一个问题。当套接字不可用时,send()能够关闭整个程序。我认为问题在于这个程序陷入了一个陷阱22并且自己关闭了。所以我将套接字设置为不阻塞。不用找了。任何想法为什么发生这种情况?send()问题
else if (b->temp_socket_list[read].revents & POLLOUT) {
printf ("#Write#\n");
char *done = "Done!";
int sent = send (sock, done, 5, 0);
printf ("end\n", sent);
}
发布一些代码演示行为。 – NPE 2011-04-12 20:34:09
此外,运行'strace'程序,以便我们可以看到真正发生的事情。 – 2011-04-12 20:37:21
@Roland +1。这是我能够找出一个过程在几个月前获得SIGPIPE的唯一途径。它似乎在系统初始化后不久就死掉了。 – Jeff 2011-04-12 20:49:58