写一种你认为最优的TCP客户端 请求-应答模式

lwx_worker 2009-10-09 11:04:55
小弟就这30分了,请不要见怪

问题是:tcp通讯中这样的通讯 连接成功后,发送一帧请求命令,等待服务器应答,根据应答判断请求命令是否成功,请求和应答都是在一次连接中进行的,这里的“成功”,是表明服务器端接收了这个正确命令。

貌似很简单的样子,可把我这个菜鸟难倒了,是用阻塞的还是非阻塞的?

我现在用阻塞的套接字

connect成功之后,发送请求帧,用setsockopt设置recv的超时时间,比如3秒没等到应答或收到错误应该就认为请求失败。

这种做法虽然可以,但是如果写在button的onclick里,界面会因为recv的阻塞而死掉,所以onclick的函数中要建立现成来处理才行。

请大家说说你们遇到TCP通讯会怎么写这样的客户端,谢谢你们。
...全文
172 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
windblood 2009-10-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 chenyu2202863 的回复:]
有界面的一般用WSAEventSelect模型
[/Quote]
有界面用WSAAsynSelect模型比较方便吧,WSAEventSelect模型如果超过64个连接,就要管理多个线程的。当然有办法在一个线程里管理超过64个连接。
chenyu2202863 2009-10-10
  • 打赏
  • 举报
回复
有界面的一般用WSAEventSelect模型
4102509 2009-10-10
  • 打赏
  • 举报
回复
select设置一下.
dirdirdir3 2009-10-09
  • 打赏
  • 举报
回复
一般不用阻塞的,非阻塞得就非常方便............
非要用阻塞得话还是建立一个线程来处理

18,363

社区成员

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

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