社区
网络编程
帖子详情
WSAAsyncSelect 服务端若发送数据,客户端退出,服务能fd_close 没反应
tan625747
2010-03-10 08:16:40
WSAAsyncSelect 服务端若发送数据,客户端退出,服务能大多少数情况fd_close 没反应
若服务端不发送数据到客户端,客户端退出,服务端fd_close 能收到信息
这个怎么调试呀
...全文
231
5
打赏
收藏
WSAAsyncSelect 服务端若发送数据,客户端退出,服务能fd_close 没反应
WSAAsyncSelect 服务端若发送数据,客户端退出,服务能大多少数情况fd_close 没反应 若服务端不发送数据到客户端,客户端退出,服务端fd_close 能收到信息 这个怎么调试呀
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tan625747
2010-03-18
打赏
举报
回复
[Quote=引用 4 楼 missye1437 的回复:]
或者你可以开启一个线程。
每分钟检查一次 保存的套接字的可用信。
例如 你记录了10个客户端,就循环十次。 如果发送不出信息给他的,就是掉线的。
[/Quote]
上面的不好实现
yize.link
2010-03-12
打赏
举报
回复
或者你可以开启一个线程。
每分钟检查一次 保存的套接字的可用信。
例如 你记录了10个客户端,就循环十次。 如果发送不出信息给他的,就是掉线的。
TRUE
2010-03-12
打赏
举报
回复
这个使用,应该是TCP协议里面的有个超时的设置,你设置一下超时的大小。
tan625747
2010-03-11
打赏
举报
回复
谢了
楼上有QQ吗
这些例子都很了解了 这个例子,没有向客户端发送数据。
如果把服务端向客户端发送数据注释掉,调试发现,只要客户端退出,服务端就能收到fd_close 执行
如是服务端向客户端发送数据 客户端退出 服务端 %90的情况是不能收到fd_close
今天查资料看到
http://topic.csdn.net/u/20070316/15/d70fccb0-e83a-40a3-a2c0-854d60813082.html
这有句话
.这种情况通常是连接的一方客户端(服务器端),close连接后;连接的另一方服务器端(客户端)的socket发送缓冲区里边还有“未确认”的数据,导致服务器端的tcp协议栈会重新发送这些数据;然而客户端socket对方已经关闭了,并且丢弃了它的socket接受缓冲区的数据。导致服务器端的tcp协议栈向上层应用返回 10053错误。 如果你这个时候用wireshark抓一下包,应该会看到客户端可能会发送一个tcp rst分段过来!怎么样解决close的时候数据丢失就是另外一个话题了
可能是服务端向客户端的 发送缓冲区里边还有“未确认”的数据 ,所以客户端退出,服务端fd_close 大多数情形没有反应
现在我要修复这个bug ,服务端向客户端发送数据,只要客户端退出,服务端fd_close 能执行。这个怎么做呀?
sun007700
2010-03-11
打赏
举报
回复
[转]Windows Socket五种IO模型(上)
http://hi.baidu.com/huhe/blog/item/f9328db1a803d65008230266.html
看一下第二种
异步选择模型
是怎么处理的
MFC 基于SOCKET 实现
服务
端
客户端
一对多
开发环境是VS2008 ,基于socket实现一个
服务
端
和多个
客户端
通信。
服务
端
: 指定端口,关闭和开启
服务
器监听; 将已连接
客户端
显示在
客户端
CListBox列表; 监听
FD
_ACCEPT|
FD
_READ|
FD
_
CLOSE
事件; 可选择和特定的...
基于W
SAAs
ync
Select
模型的
服务
端
和
客户端
设计(MFC)
目录1 效果展示1.1
服务
器和
客户端
界面展示1.2 一对一之间通信的功能展示1.3 一对多之间通信的功能展示2 知识预备2.1 W
SAAs
ync
Select
模型介绍2.2 W
SAAs
ync
Select
模型的过程图2.3 与
SELECT
模型比较2.4 套接字...
网络程序设计——异步选择模型(基于消息的选择、基于事件的选择)
共同特点:不管 I/O事件是否发生,应用程序都会按既定流程主动试着进行I/O操作,而且直至操作成功才会罢休,因此这三种套接字模型都属于...W
SAAs
ync
Select
模型和WSAEvent
Select
模型都属于异步I/O模型,二者的差别在于。
关于windows
客户端
网络编程 W
SAAs
ync
Select
函数
W
SAAs
ync
Select
模型允许以windows消息作为网络事件的通知,这个模型是为了windows消息专门而设置的。这个函数默认使socket为非阻塞模式(一般情况下,异步模式便为非阻塞模式)。当W
SAAs
ync
Select
函数进行调用了以后...
c++ windows网络编程之异步选择模型W
SAAs
ync
Select
函数使用说明
但是它需要一个死循环不停的去遍历所有的
客户端
套接字集合,询问是否有数据到来,如果连接的
客户端
很多则处理
客户端
请求的效率会大幅度降低,如果有一个模型,可以不用去轮询
客户端
套接字集合,当有
客户端
数据到来时...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章