一个苯苯的问题!!

mongmong 2002-11-04 08:05:27
同样是非多线程条件下
非阻塞socket(winsock的消息处理)和阻塞socket相比,那个相应速度更快??
...全文
98 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
KeepRun 2002-11-07
  • 打赏
  • 举报
回复
和阻塞模式没什么直接关系吧。阻塞只不过等到有数据到才会返回。还需要看你用什么套接字模式。我感觉这些并不是根据相应速度来选择的。而是根据服务要求。比如是否同时对多个客户分开操作。就多个客户来说,如果考虑到CPU占用率,还使用非阻塞模式比较好,在返回0时交还CPU控制权。
wwwunix 2002-11-05
  • 打赏
  • 举报
回复
对于你的情况,我认为两者速度都差不多。用非阻塞的情况可以让你的程序做其他的事,以提高整个程序的效率。而用阻塞的情况则编程相对简单。
everwindforce 2002-11-05
  • 打赏
  • 举报
回复
1 当网络的带宽很大(相对于主机的处理速度),且负载较高时:
使用非锁定的方式,应该可以比较明显得提高网络i/o的速度
(主机可以在发送和接受的同时处理上一个/下一个(对应接收和发送)数据块.)
2 如果有较大的接收窗口,非锁定方式工作的效率更高(减少系统调用的次数)
3 当负载很小时,两者的性能差不多.非锁定方式更易于管理.

由于你是用单线程,即使不考虑效率,也应该至少在接收方使用非锁定方式,以避免由于发送方出现的问题导致接收进程(当然,发送进程也可能,但机会较小)僵死.
everwindforce 2002-11-04
  • 打赏
  • 举报
回复
en
我想一下先.
mongmong 2002-11-04
  • 打赏
  • 举报
回复
补充一下,整个连接,发送,断开的过程,数据传输量不大,可以说99%以上每次都在150K左右,而且服务器在100M网络环境下运行,而且都不使用多线程
mongmong 2002-11-04
  • 打赏
  • 举报
回复
我想进行的比较是从接受连接-发送数据-断开连接这一单一过程阻塞socket和非阻塞socket之间的效率.
everwindforce 2002-11-04
  • 打赏
  • 举报
回复
阻塞的方式(在发送时)对带宽利用的更充分吧.
先说一下怎么算快,不然不好比.


4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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