社区
网络编程
帖子详情
WSAAsyncSelect 服务端若发送数据,客户端退出,服务能fd_close 没反应
tan625747
2010-03-10 08:16:40
WSAAsyncSelect 服务端若发送数据,客户端退出,服务能大多少数情况fd_close 没反应
若服务端不发送数据到客户端,客户端退出,服务端fd_close 能收到信息
这个怎么调试呀
...全文
234
5
打赏
收藏
WSAAsyncSelect 服务端若发送数据,客户端退出,服务能fd_close 没反应
WSAAsyncSelect 服务端若发送数据,客户端退出,服务能大多少数情况fd_close 没反应 若服务端不发送数据到客户端,客户端退出,服务端fd_close 能收到信息 这个怎么调试呀
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
看一下第二种
异步选择模型
是怎么处理的
W
SAAs
ync
Select
模型示例源码
通过分析"as
ync
_
select
_client"和"as
ync
_
select
_srv"源码,你可以更好地理解如何在实际项目中使用W
SAAs
ync
Select
模型来实现
客户端
和
服务
端
的通信。这个模型对于初学者是很好的学习材料,同时也适用于构建简单的网络...
Socket W
SAAs
ync
Select
模型示例
6. **处理数据**:处理`
FD
_READ`消息,通过`recv()`读取
客户端
发送的数据;处理`
FD
_WRITE`消息,通过`send()`向
客户端
发送数据
。 7. **关闭资源**:在适当的时候,记得调用`
close
socket()`关闭套接字,并在不再需要...
c++基于W
SAAs
ync
Select
的C/S程序
W
SAAs
ync
Select
被用来注册
FD
_ACCEPT事件,这意味着当有新的
客户端
连接请求时,系统会发送一个消息到
服务
端
窗口。
客户端
(winSocketC)程序则负责建立到
服务
端
的连接。它也需要初始化Winsock,创建一个套接字,然后...
Winsock WSAEvent
Select
(单线程)
服务
端
模型源码
常见的套接字事件包括
FD
_READ(可读)、
FD
_WRITE(可写)、
FD
_OOB(紧急数据)、
FD
_ACCEPT(接受新连接)、
FD
_
CLOSE
(连接关闭)等。 2. **单线程
服务
端
模型** 在单线程
服务
端
模型中,所有网络事件都在同一个线程...
W
SAAs
ync
Select
的
服务
器端例子
提供的"W
SAAs
ync
Select
的
服务
器端例子"很可能是为了展示如何使用`W
SAAs
ync
Select
`创建一个简单的TCP
服务
器,该
服务
器监听指定端口,当有
客户端
连接时接受连接,然后读取并回应
客户端
的数据。这个例子对于初学者理解...
网络编程
18,363
社区成员
64,187
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章