菜鸟提问,关于udp socket复用

cool_ice 2006-08-16 11:24:34
建立一个udp写的服务端socket,在某端口侦听,接收包并进行逻辑处理后,发送回头,为了提高效率想做成多线程的,将接收和发送包分开。请问同个udp socket,能不能在一个线程中专门发送,另外一个线程专门接收??
有没有更好的方法来提高效率?
谢谢各位大虾啦!
...全文
281 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
cool_ice 2006-08-23
  • 打赏
  • 举报
回复
继续UP!
cool_ice 2006-08-20
  • 打赏
  • 举报
回复
udp里面有没有io复用这样的概念?
cool_ice 2006-08-20
  • 打赏
  • 举报
回复
那就是说一个接收,一个发送,一个做逻辑处理哦
贵子潘 2006-08-20
  • 打赏
  • 举报
回复
只要计算过程不太复杂,用一个线程来处理就差不多了
我们的程序也是这样设计的,客户端有几十万吧。而且是一秒内就会接受到几千个包
运行得也很好...
cool_ice 2006-08-20
  • 打赏
  • 举报
回复
OK,看来自己的思路没有偏离正确的道路,那应该没有问题了!!!
谢谢楼上的!
mynamelj 2006-08-19
  • 打赏
  • 举报
回复
但我使用UDP协议这么久以来一直都是用一个线程专门接收和处理..而用别一个线程专门来发送数据..目前也没发现有什么问题.

------------------------
你这样的方法效率一定不高.一个线程接收和处理,就是说当第一处理完成后才能接收下一个.

用一个线程专门发送数据..好像这个线程的工作也太轻松了吧.
绝缘 2006-08-19
  • 打赏
  • 举报
回复
具体UDP协议上是怎么说的我不太清楚.也不知道和硬件有没有关系.但我使用UDP协议这么久以来一直都是用一个线程专门接收和处理..而用别一个线程专门来发送数据..目前也没发现有什么问题.
绝缘 2006-08-19
  • 打赏
  • 举报
回复
to mynamelj(风之羽翼):
谢谢你的提醒,"一个线程专门接收和处理",在处理过程中.当遇到很复杂的计算时,我都会再开一个线程来计算.并不会影响接收线程的.
cool_ice 2006-08-18
  • 打赏
  • 举报
回复
csdn现在人气怎么这么低?还是高手太少...哎!
cool_ice 2006-08-17
  • 打赏
  • 举报
回复
是的,我准备做一个线程专门来接收,一个线程专门来发送,一个线程池专门来做逻辑处理,
接收到的包放在一个同步队列中,由逻辑处理线程池做完处理以后,放在待发送同步队列中,然后由发送线程来发送。这样的结构效率应该可以。
但是如果客户端非常多,可能这种效率还是不够。
不知道有没有更好的方法?!
cool_ice 2006-08-17
  • 打赏
  • 举报
回复
楼上的大侠什么意思?
DentistryDoctor 2006-08-17
  • 打赏
  • 举报
回复
UDP,这些都没必要.
cool_ice 2006-08-17
  • 打赏
  • 举报
回复
upup!
mynamelj 2006-08-16
  • 打赏
  • 举报
回复
如果网络全双工则不需要做同步处理

发送和接收几呼是很快的,关键是看你的数据处理过程.

你可以使用一个队列来缓冲收取的UDP包,这样你就不必要等处理完后再接收,注意在队中要使用同步处理.处理完成后立即发送出去.

18,356

社区成员

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

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