Socket通信端口问题

mizuho_2006 2012-05-12 08:51:47
客户端和服务端的端口必须一致,但是现在因为需求,我的客户端机器上要开两套同样的程序,而服务端只有一个程序。
这样一来客户端两个程序就会同时使用一个端口,这是不允许的。

请问应该如何解决此问题?
...全文
353 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
刁蛮小神医 2012-05-13
  • 打赏
  • 举报
回复
楼主的头像是一叽咕啊
  • 打赏
  • 举报
回复
你预设的所谓“理由”太纠结了,懒得去跟你一起纠结。
showlie 2012-05-13
  • 打赏
  • 举报
回复
你的客户端的端口是写死的吗?为什么不通过配置文件来读取本程序的端口号,每个程序通过配置文件获取本程序的端口好,这样在本机上不管你开多少个都可以了。
路人陈 2012-05-13
  • 打赏
  • 举报
回复
socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram,ProtocolType.Udp);
ipPoint = new IPEndPoint(IPAddress.Parse(ipAdrr), 2012); socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); //注意:SocketOptionName.ReuseAddress是关键
socket.Bind(ipPoint);
路人陈 2012-05-13
  • 打赏
  • 举报
回复
楼主的问题就是端口复用问题,我以前做过这样的案例,用某个端口发完数据,马上又用这个端口接收数据,端口复用就可以了。
rayyu1989 2012-05-13
  • 打赏
  • 举报
回复
没听说过端口还得一致

如果客户端经过路由再出去 端口都变的面目全非了都 还怎么一致

客户端随机端口
mizuho_2006 2012-05-12
  • 打赏
  • 举报
回复
因为业务需求,必须开两套程序。两个程序不能共用一个端口的。

我问同学说可以用虚拟机实现,不知道是否可行
e_board 2012-05-12
  • 打赏
  • 举报
回复
公用一个Socket啊,干嘛非得打开两次啊。用个隧道穿个后来的打开的实例如何。
还有为什么非得开两个程序呢,一个程序两个窗口不行吗?
非得这样的话。
在C++中有个共享打开端口的API,忘记了,好像是Set开头的,你可以查查
mizuho_2006 2012-05-12
  • 打赏
  • 举报
回复
是不是可以在服务端使用多线程监听多个端口呢?然后我在客户端使用两个不同的端口就可以了。
mizuho_2006 2012-05-12
  • 打赏
  • 举报
回复
由于用户需求,客户端只能使用一台电脑。

111,126

社区成员

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

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

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