社区
网络编程
帖子详情
服务端利用WSAAsyncSelect对FD_READ消息处理的问题
cloudrain
2005-10-06 11:03:26
偶在FD_READ中创建接收线程里接收客户端(阻塞套节字,连续发送多个数据包)发送TCP包数据(2K左右),然后处理(收到1个包处理1次),由于处理要耗费一定时间造成只接收了部分包,其它包数据未来得及接收。怎样才能解决数据接受不全这个问题?就是包数据处理另外派生1个处理线程或客户端每发1个包延时也不能解决这个问题啊
...全文
142
3
打赏
收藏
服务端利用WSAAsyncSelect对FD_READ消息处理的问题
偶在FD_READ中创建接收线程里接收客户端(阻塞套节字,连续发送多个数据包)发送TCP包数据(2K左右),然后处理(收到1个包处理1次),由于处理要耗费一定时间造成只接收了部分包,其它包数据未来得及接收。怎样才能解决数据接受不全这个问题?就是包数据处理另外派生1个处理线程或客户端每发1个包延时也不能解决这个问题啊
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nuaawenlin
2005-10-07
打赏
举报
回复
多线程接收
Wolfe
2005-10-06
打赏
举报
回复
我用过WSAAsyncSelect也用过重叠IO和完成端口,都会出现这个情况。甚至我用同步模式服务端也只是接到最初的几包数据。一直没有搞清楚什么原因。
后来我就绕了个道,牺牲了效率:服务端每接收处理一个数据包就发送一个确认包给客户端,客户端接到确认包后再继续发送下一包。
oyljerry
2005-10-06
打赏
举报
回复
每个请求开线程处理,如果客户过多,考虑更加高效的I/O模型 重叠端口 ,IOCP等
MFC 基于SOCKET 实现
服务端
客户端一对多
1.程序说明 开发环境是VS2008 ,基于socket实现一个
服务端
和多个客户端通信。
服务端
: 指定端口,关闭和开启服务器监听; 将已连接客户端显示在客户端CListBox列表; 监听
FD
_ACCEPT|
FD
_
READ
|
FD
_CLOSE事件; 可选择和特定的已连接客户端通信; 通信数据和系统信息滚动显示。 客户端: 指定服务器IP、端口,关闭和连接服务器; 监听
FD
_CONNECT|
FD
_
READ
|
FD
_CLOSE事件, 顺便做了一个测试程序,测试程序作用是循环打开指定个数的客户端
W
SAAs
ync
Select
注意的地方
SOCKET模型
基于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 套接字W
SAAs
ync
Select
模型实现2.5 网络事件种类2.6 W
SAAs
ync
Select
模型的优势和不足3 代码展示3.1
服务端
3.1.1 定义变量3.1.2 初始化界面3.1.3 启动服务器3.1.4
消息
响应3.1.5 发送
消息
3.1.5 断开
网络编程(53)—— Windows下使用W
SAAs
ync
Select
实现窗口
处理
socket
消息
一、引言 上一文中我们介绍了使用WSAEvent
Select
实现异步通知IO的方法,本文我们主要讨论下使用W
SAAs
ync
Select
处理
socket的方法。本文的主要目标,是创建一个带界面的回声
服务端
,接收并返回客户端传过来的字符串,并在界面上显示该字符串。为此,我们将采用MFC的编程环境,建立如下的对话框程序: 二、W
SAAs
ync
Select
函数
通信编程:W
SAAs
ync
Select
模型通信
异步选择(W
SAAs
ync
Select
)
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章