TCP WSAAsyncSelect模型正在传输数据,怎样终止它?

ttnewday 2009-07-23 10:38:30
TCP WSAAsyncSelect模型正在传输数据,怎样终止它?
...全文
140 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ttnewday 2009-08-21
  • 打赏
  • 举报
回复
WSAAsyncSelect(sock, m_hWnd, WM_SOCK, 0)后,客户端的网络事件是取消了,但服务端获得了什么,以便能判断客户端取消了传送数据?
jyh_baoding 2009-07-28
  • 打赏
  • 举报
回复
先cancel 然后close
socoola 2009-07-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ttnewday 的回复:]
取消跟事件的关联就可以中止正在进行的传输?这样会不会出现问题?
[/Quote]
你担心出什么问题?
如果数据正在传输(比如调用recv接收数据),当前数据接收完毕后就不会再有数据产生。
如果正在等待事件,就会马上返回,根据返回值和错误码就能判断出事件被取消关联
ttnewday 2009-07-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 socoola 的回复:]
int WSAAsyncSelect (
  SOCKET s,
  HWND hWnd,
  unsigned int wMsg,
  long lEvent
);
你要取消跟事件的关联的话,其他参数不变,把事件参数lEvent设置为0就好了。
[/Quote]


取消跟事件的关联就可以中止正在进行的传输?这样会不会出现问题?
dong364 2009-07-27
  • 打赏
  • 举报
回复
通过事件
socoola 2009-07-27
  • 打赏
  • 举报
回复
int WSAAsyncSelect (
SOCKET s,
HWND hWnd,
unsigned int wMsg,
long lEvent
);
你要取消跟事件的关联的话,其他参数不变,把事件参数lEvent设置为0就好了。
晨星 2009-07-23
  • 打赏
  • 举报
回复
试试从另一个线程close socket?

18,357

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧