ChinaUnix.net
相关文章推荐:

nio 对方socket关闭,没有检测到

socket编程中,在通信正常一段时间后,如何检测到网线断开现象?

by ral21 - C/C++ - 2005-04-21 22:54:07 阅读(9890) 回复(11)

相关讨论

检测socket客户端异常断开时候可不可以这样子? int numbytes = recv(Jinfo->clientfd, receive, rcvlen, 0); if ( numbytes <= 0){ if (errno == EINTR){ 被中断 继续循环 } int s_errno; socklen_t len_t = sizeof(s_errno); if (getsockopt(Jinfo->clientfd, SOL_socket, SO_ERROR, &s_errno, &len_t) == -1){ printf("we have a SO_ERROR on socket %d, close and return it!\n", Jinfo->clientfd); close (Jinfo->cli...

by chb_412 - 程序开发 - 2006-06-28 09:07:40 阅读(1031) 回复(2)

我在linux下开发一个小型的http server, 并使用了select模型, 为每个客户端创建了一个异步的socket. 如果客户端下载完一个Url后,此Server就关闭socket的, 这样的情况下此Server可以同时支持5个不同的客户端. 如果一个客户端没有下载完一个Url时, 突然关闭.而此时此Serverd端如何及时发现对方socket已经关闭, 并把和此客户端的对应的socket给予关闭. 我查找了一些资料, 如果给已经关闭socket写数据, 第一次将返回RST, 第二次...

by nelson_xia - C/C++ - 2006-03-16 14:48:22 阅读(1276) 回复(0)

小弟在编程过程中遇到一个问题,server端fork一个子进程来处理client端的连接,如果这个client端非正常退出的时候,server端怎么能够检测到client端已经退出,并把这个子进程杀掉呢? 多谢了!在线等。

by `````` - 程序开发 - 2006-04-07 16:11:39 阅读(1399) 回复(6)

使用select调用来测试socket连接的状态(fd_set中的execptfds)是否保证可信? 有没有非正常的socket状态,select无法检测到的? 我想采用超时的方式来处理,比如对多个socket遍历,在6分钟内没有数据传输的,我就认为它出问题了,因为我会在最长为5分钟的时间内发送数据或者心跳,但这种办法看起来似乎比较笨,但这种办法基本上可以保证数据的传输,至少丢数的机会比较少。 现在我想看看select调用能否达到这个目的,有什么需要注意...

by sonicer - C/C++ - 2004-05-14 11:01:47 阅读(5266) 回复(13)
by maskor - Java - 2003-06-09 14:55:14 阅读(5219) 回复(9)

因为建立socket之后 不知道具体的数据量 需要根据对方是否关闭关闭自己的socket 应该有这样的函数吧 各位帮帮忙哦

by goodbyefaith - C/C++ - 2007-02-10 14:41:02 阅读(3210) 回复(17)

请问非阻塞连接中 我能否通过 select(_gSockId+1,&readfds,NULL,NULL,&waittime); 的返回值判定连接的正常与否呢,应当怎么判断

by guohaitao - C/C++ - 2003-11-12 23:27:07 阅读(1782) 回复(4)

在MSDN中对shutdown函数中的Remarks部分有下面一段话,指出了如何进行一次优雅的slcket关闭: To assure that all data is sent and received on a connected socket before it is closed, an application should use shutdown to close connection before calling closesocket. For example, to initiate a graceful disconnect: Call WSAAsyncSelect to register for FD_CLOSE notification. Call shutdown with how=SD_SEND....

by gunny - 网络技术文档中心 - 2008-09-19 10:39:47 阅读(1608) 回复(0)

fd_accept 是已经连接socket 我使用 read(fd_accept, buffer,1-111); 然后close(fd_accept) ;//这里会发送一个RST分解而不是FIN 为什么呢?我期望是FIN 是不是对有错误的socket close也导致RST?

by stuff990 - C/C++ - 2007-08-31 21:20:19 阅读(1994) 回复(1)

假设有这么两个进程,一个服务端进程,一个客户端进程. 我的客户端进程向服务端进程发送数据,但服务端进程不接收缓冲区里的数据. 当服务端进程的接收缓冲区里有了一堆数据的时候,我的客户端进程执行了close, 这个时候我的服务端进程怎么才能获取客户端的关闭信号?

by 空灵静世 - C/C++ - 2007-07-01 14:02:18 阅读(3283) 回复(12)