当前位置: 代码迷 >> C# >> 双线的服务器怎么玩监听
  详细解决方案

双线的服务器怎么玩监听

热度:70   发布时间:2016-05-05 04:05:02.0
双线的服务器如何玩监听?
很久以前在阿里云弄了一个服务器 自己写了一个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个网卡同时生效?
------解决思路----------------------
虽然.Net 2.0中的TcpListener(8888);这个重载被标记为过时了,但是用起来依然是可以的
------解决思路----------------------
没看懂数据是哪里到哪里
你的程序放在服务器端的话 应该可以直接这样写 
TcpListener listener = new TcpListener("localhost", 8888);
------解决思路----------------------
引用:
没看懂数据是哪里到哪里
你的程序放在服务器端的话 应该可以直接这样写 
TcpListener listener = new TcpListener("localhost", 8888);


不需要关注数据是通过那个ip来的,只监听本机的端口即可 
TcpListener listener = new TcpListener("127.0.0.1", 8888);
  相关解决方案