我有一台服务器,假设内网ip为192.168.0.1  ,外网ip为 111,111,111,111在服务器上启动程序,内网的客户端可以连接服务器进行socket通信,外网的客户端也可以连接进行socket通信。现在好像我只能在服务器端绑定一个ip?客户端通过连接这个ip才能通信,也就是说不能同时保证内网和外网客户端都可以请求socket  tcp/ip  通信连接?服务器端到底该怎么监听

解决方案 »

  1.   

    IPAddress[] ipList = Dns.GetHostAddresses(Dns.GetHostName());
    for (int i = 0; i < ipList.Length; i++)
    {
    //绑定
    }大概是这样吧
      

  2.   


    这样是获取当前电脑的所有ip信息,这个我知道,问题是socket监听,一次性绑定,你难道让我一个ip绑定一个,然后一个ip再来一个socket和thread?有哪个函数直接监听服务器所有ip并处理的么
      

  3.   

    我要的是一次性绑定服务器所有ip的函数,你这样是让我一个ip监听,然后每个ip都进行相同的数据处理?后面的处理可是很庞大的,肯定这样不行
      

  4.   

    IPAddress[] ipList = Dns.GetHostAddresses(Dns.GetHostName());
    for (int i = 0; i < ipList.Length; i++)
    {
    //绑定
    Socket socket = new Socket(.....);
    }大概是这样吧
      

  5.   

    6楼正解,绑定到IPAddress.Any,就绑定到服务器的所有ip