是用socket监听对方发送过来的数据,监听socket绑定到ipaddress.any,到接收到数据后能否知道是由哪个网卡接收到的这条数据?有没有碰到过类似问题的,帮忙解答一下,谢谢

解决方案 »

  1.   

    绑定的时候是绑定的端口,连接后Accept会返回一个Socket,这个socket的LocalEndPoint就是了
      

  2.   

    几个网卡分别绑定,不要使用IPAddress.Any,例如:
    Socket loopServer = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
    Socket udpServer = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
    IPEndPoint localLoopAddr = new IPEndPoint(IPAddress.Any, 8090);
    IPEndPoint localAddr = new IPEndPoint(IPAddress.Parse("10.13.2.87"), 8090);
    loopServer.Bind(localLoopAddr);
    udpServer.Bind(localAddr);然后,和介socket分别接收数据就可以了