日期:2014-05-16  浏览次数:20644 次

[求助]关于SOCKET编程中close函数阻塞的问题。
在linux 2.4的socket编程中,遇到一个问题:

if(close(client_sockfd)==-1) 
{
pirntf("close client_sockfd err!");
}
else
{
pirntf("close client_sockfd ok");
}

结果抓包发现FIN已经发出,但是没有打印任何信息。close函数阻塞了?
有没有什么方式能让它强制关闭连接,而不阻塞?
它在什么条件下阻塞?还有没发送完成的数据?但是也应该在发FIN之前阻塞啊。
在linux的函数帮助中中也没有详细说明这一部分。(http://www.kernel.org/doc/man-pages/online/pages/man2/close.2.html#CONFORMING_TO)
或者谁能告诉我这个函数的详细手册能在哪查到。谢谢。


------解决方案--------------------
是不是因为缓存的原因,导致输出没有显示?

加个换行符试试
printf("close client_sockfd ok\n");
------解决方案--------------------
探讨

是不是因为缓存的原因,导致输出没有显示?

加个换行符试试
printf("close client_sockfd ok\n");