一个网络的基础问题,实现多个机器两两的互联

srhouyu 2014-04-10 09:33:08
对于网络不太懂。

如果我有5台机器,希望能够实现两两互联,也就是每台机都是Server的同时也是Client。

那么,算起来,我每台机器需要有一个监听者作为Server,然后每台机器都需要作为Client同时连接到4个Server上。

那么,每台机器是不是需要1个TcpListener+4个TcpClient,是不是这4个TcpClient需要占用4个端口?

如果我总共有1000台机,是不是每台机都需要占用1000个端口了?

有没有不这么暴力的方法?
...全文
103 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2014-04-10
  • 打赏
  • 举报
回复
当然不是。监听只要一个端口就好了。只要双向通讯,不需要一直保持连接。 好比web server只要监听80端口,就足以同时满足很多客户端的访问需要。
showjim 2014-04-10
  • 打赏
  • 举报
回复
如果一台服务器能够承受需求业务量,使用一台服务器转发比较简单。
showjim 2014-04-10
  • 打赏
  • 举报
回复
如果使用TCP长连接,确实就像楼主说的这样。 看需求与环境可以考虑短连接或者UDP这种无连接。其实关键的问题是,完全的两两互联有一点的局限性,比如涉及到打洞不穿的问题。 退一步说,你可以参考WCF的网格网络,由网络中的可双向连通的节点做转发服务器,不过逻辑实现比较复杂。
srhouyu 2014-04-10
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
什么叫两两互联呢?这应该问你自己有没有更具体的定义方式。 比如说我通过QQ跟别的一个QQ用户聊天,还能传文件,还能音频和视频,我就不能说我跟他“两两互联”着。
不是跟一个用户,而是跟多个用户,就像飞鸽传书那样,每台机都能随时主动给其他机器发送信息,每台机器也能随时接收其他任何一台机器的信息。
  • 打赏
  • 举报
回复
什么叫两两互联呢?这应该问你自己有没有更具体的定义方式。 比如说我通过QQ跟别的一个QQ用户聊天,还能传文件,还能音频和视频,我就不能说我跟他“两两互联”着。

110,533

社区成员

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

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

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