关于C# Socket.BeginReceiveFrom的几个问题

bonat 2014-09-19 10:41:29
最近用到Socket.BeginReceiveFrom做一个UDP通讯的程序,服务器端的任务就是监听端口接收数据,这个程序的主要问题是客户端数量很多,数据量也很大,所以通讯效率成了个问题。如果我在程序中连续调BeginReceiveFrom多次(端口、回调函数等参数完全一致),能不能起到多个线程同时监听端口接收数据的效果?调用方法如下:
for (int i=0; i<threadCnt; i++)
{
s.BeginReceiveFrom(...);
}

这里还有一个问题:多个BeginReceiveFrom监听同一端口,是否会存在线程冲突的问题?

查了很多资料,大多语焉不详,请大伙帮帮忙!
...全文
635 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bonat 2014-09-21
  • 打赏
  • 举报
回复
引用 2 楼 Z65443344 的回复:
收到的数据如果处理的慢,你可以把处理过程另开线程处理 收数据你用那么多线程去收,意义何在?
多个线程收数据主要是考虑到收到数据之后需要解析数据包,这些操作可能会比较慢,所以考虑到使用多个线程。 请教一下,多个线程进行BeginReceiveFrom,会有什么问题?会存在收到多个重复数据的问题吗?
於黾 2014-09-19
  • 打赏
  • 举报
回复
这就跟收快递一样 快递里是设备,或者是文件,你处理完一个再收下一个慢,你可以收完分给多个人分别处理 有什么必要弄一堆人排队等快递?
於黾 2014-09-19
  • 打赏
  • 举报
回复
收到的数据如果处理的慢,你可以把处理过程另开线程处理 收数据你用那么多线程去收,意义何在?
bdmh 2014-09-19
  • 打赏
  • 举报
回复
你都监听同一个端口,那你收到的数据不是都一样吗,那多个线程的意义何在

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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