我在同一台电脑上,创建了一个Server,两个Socket,我想通过Server实现两个client的通信
我遇到了几个问题一:我让Server监听两个端口,client1的socket绑定端口1,client2的socket绑定端口2(此时两个socket绑定的ip应该相同?...
我遇到了几个问题
一: 我让Server监听两个端口,client1的socket绑定端口1,client2的socket绑定端口2(此时两个socket绑定的ip应该相同?),运行时出现了错误Only one usage of each socket address (protocol/network address/port) is normally permitted。
二: 我用mySocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);解决了问题一以后,再用SendTo(buff, 中结点2)(此处用SendTo是为了实现转发)进行转发,结果中结点2没收到信息,而中结点1却收到了
求各位高手赐教,或给我一个例子,我慢慢研究,很急,拜谢了!!!
前辈们 请出面帮晚辈一下吧 谢谢了 展开
一: 我让Server监听两个端口,client1的socket绑定端口1,client2的socket绑定端口2(此时两个socket绑定的ip应该相同?),运行时出现了错误Only one usage of each socket address (protocol/network address/port) is normally permitted。
二: 我用mySocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);解决了问题一以后,再用SendTo(buff, 中结点2)(此处用SendTo是为了实现转发)进行转发,结果中结点2没收到信息,而中结点1却收到了
求各位高手赐教,或给我一个例子,我慢慢研究,很急,拜谢了!!!
前辈们 请出面帮晚辈一下吧 谢谢了 展开
2个回答
展开全部
如果两个socket A、B 同时监听同一个端口。
只有A可以正常收发数据;B是不能收数据的。只有等待A关闭了后,B才能生效,才能正常收发数据。
listen这个函数 不知道你注意没,只要打开后,除非close socket 不然他是一直监听的。
所以要么你通过代码自动或手工实现close socket A,然后打开B,接收。 当要接收A时,又关闭B打开A。。 这样当然非常不理想。
所以最好把两个client绑定在不同的端口上。IP当然可以相同,你想象,一台计算机一个IP,却有那么多端口(0-65535)通信
只有A可以正常收发数据;B是不能收数据的。只有等待A关闭了后,B才能生效,才能正常收发数据。
listen这个函数 不知道你注意没,只要打开后,除非close socket 不然他是一直监听的。
所以要么你通过代码自动或手工实现close socket A,然后打开B,接收。 当要接收A时,又关闭B打开A。。 这样当然非常不理想。
所以最好把两个client绑定在不同的端口上。IP当然可以相同,你想象,一台计算机一个IP,却有那么多端口(0-65535)通信
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
快又稳
2024-10-28 广告
2024-10-28 广告
在Linux环境下配置基于域名的虚拟主机,需安装Apache或Nginx等Web服务器,并编辑配置文件。以Apache为例,需创建虚拟主机配置文件,指定域名、文档根目录等,然后启用该配置文件并重启Apache服务。同样,Nginx也需在相应...
点击进入详情页
本回答由快又稳提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询