关于socket编程的客户端多次发送问题

btbb1989 2010-10-11 12:59:48
用MFC 写了一个客户端发送服务端接收的socket通信程序
现在的问题是想让客户端多次发送数据到服务端 怎么实现这个问题 求高手解答谢谢

我开始的想法是这样的:在发送按钮的函数里用一个循环 多次执行send()函数,可结果确实服务器只能收到最后一次执行send()发送的内容

void CCSockClientDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
for(int i = 0;i < 100;i++){
OnSend();
Sleep(50);
}
}

原因是只有把这个发送按钮函数执行完后才会触发到客户端AsyncSocket类的Onsend函数,
请大侠们帮帮忙 谢谢啦

...全文
221 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
白虹李李 2010-10-19
  • 打赏
  • 举报
回复
如果你的数据不长,并且发送频率不高(你Sleep(50),应该不高),不要到OnSend去发送,直接在这里Send就好。会立即成功的。
你直接调用OnSend(),再在OnSend()里去发是不对的。
理论上不能自己调用OnSend,OnSend是系统来触发的,告诉你需要进行处理了。
xgPaul 2010-10-11
  • 打赏
  • 举报
回复
可以考虑直接就用阻塞式发送。。。
btbb1989 2010-10-11
  • 打赏
  • 举报
回复
有其他的办法吗 对多线程编程现在还不太理解 我急着用啊
向立天 2010-10-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 btbb1989 的回复:]
怎么用一个独立线程发?
[/Quote]
你不太了解多线程编程吧
看看这个系列教程
http://www.vckbase.com/document/viewdoc/?id=1704
Eleven 2010-10-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 btbb1989 的回复:]
怎么用一个独立线程发?
[/Quote]
就是创建一个线程,在线程中send数据出去
btbb1989 2010-10-11
  • 打赏
  • 举报
回复
怎么用一个独立线程发?
向立天 2010-10-11
  • 打赏
  • 举报
回复
用一个独立线程发

18,356

社区成员

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

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