双线的服务器如何玩监听?

by_封爱 版主 2015-04-21 01:49:43
很久以前在阿里云弄了一个服务器 自己写了一个exe(TcpListener)监听了一端口(9999)暂叫服务A

客户端(硬件或者自己写的tcpclient测试)就访问阿里云的IP直接发送数组

代码如下

TcpClient c = new TcpClient();
c.Connect(IPAddress.Parse("服务器IP"), 9999);
c.Client.Send(数组);
c.Client.Shutdown(SocketShutdown.Both);
c.Client.Close();
c.Close();

都很正常没什么问题 不过这是测试阶段,现在要交付项目结果发现一个事情.

对方给我一个2个IP(联通跟电信) 他们映射到了一个电脑上(3个网卡) 都是内网IP

现在是192.168.168.1我们叫A线路 对应外网IP假设叫X
192.168.168.2我们叫B线路 对应外网IP假设叫Y
因为没有独立的IP所以我监听的代码

TcpListener listener = new TcpListener("192.168.168.1", 8888);

这样的话 外网只能通过X线路来访问.相反也一样 监听B线路X就无法访问.

但是我部署的网站80端口 2个线路都可以访问.

有什么方法 让我这tcp程序监听1次2个网卡同时生效?
...全文
127 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
by_封爱 版主 2015-04-21
  • 打赏
  • 举报
回复
引用 5 楼 jijunwu 的回复:
[quote=引用 3 楼 jijunwu 的回复:] 没看懂数据是哪里到哪里 你的程序放在服务器端的话 应该可以直接这样写 TcpListener listener = new TcpListener("localhost", 8888);
不需要关注数据是通过那个ip来的,只监听本机的端口即可 TcpListener listener = new TcpListener("127.0.0.1", 8888);[/quote] 127.0.0.1导致2个网卡都无法监听了... 最终还是我自己1L的办法 any可以了.
本拉灯 2015-04-21
  • 打赏
  • 举报
回复
IPaddress.Any
  • 打赏
  • 举报
回复
引用 3 楼 jijunwu 的回复:
没看懂数据是哪里到哪里 你的程序放在服务器端的话 应该可以直接这样写 TcpListener listener = new TcpListener("localhost", 8888);
不需要关注数据是通过那个ip来的,只监听本机的端口即可 TcpListener listener = new TcpListener("127.0.0.1", 8888);
by_封爱 版主 2015-04-21
  • 打赏
  • 举报
回复
引用 2 楼 dongxinxi 的回复:
虽然.Net 2.0中的TcpListener(8888);这个重载被标记为过时了,但是用起来依然是可以的
实际上 我就是那个意思..不过代码可能不太一样.实际上我的代码是如下的

  var  sock = new Socket(myEnd.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
  sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1);
  IPEndPoint myEnd=new IPEndPoint(IPAddress.Parse(Host), Port);
  sock.Bind(myEnd);
  sock.Listen(20);
其中host跟port的参数..所以就照成了上面的问题..不能玩转双网卡....
  • 打赏
  • 举报
回复
没看懂数据是哪里到哪里 你的程序放在服务器端的话 应该可以直接这样写 TcpListener listener = new TcpListener("localhost", 8888);
  • 打赏
  • 举报
回复
虽然.Net 2.0中的TcpListener(8888);这个重载被标记为过时了,但是用起来依然是可以的
by_封爱 版主 2015-04-21
  • 打赏
  • 举报
回复
发帖子的无意间看到

IPaddress.Any
我先去测试下有没有效果....

110,536

社区成员

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

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

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