。绑定。。要是换IP怎么办?所以还是别绑定了,一般绑定的是帐号,而不是IP

解决方案 »

  1.   

    如果只绑定其中某个IP,udp客户端向服务器发送数据时,如果设置的目的ip与服务器的绑定ip不一致,就不能通讯了
      

  2.   


    你是说客户端的访问服务端IP的固定是吧,那就用域名,而不是用IP,
    好比你的IP 今天是这个样,后面服务器搬家了。IP变了。那之前的固化在客端端的IP没法改变那就访问不了了,
    用域名写入到客户端软件固化进去,就算IP变了也没事,你重新设一下域名与IP的关系就是了,这样程序都不用改
      

  3.   

    你说的是啊,这方面我的知识了解得少。
    我这个程序主要是用于一个设备和PC端通讯的,主要是点对点的局域网通讯,设备作为客户端,PC作为服务器端。
    我之所以问这个问题是因为设备可以设置PC的IP地址和端口,但是如果PC有n个IP地址,设备上设置的PC端IP地址不是udp服务器绑定的IP,就不能通讯了
      

  4.   


    ..不是这样子的,PC不管你有多少个IP,PC只要管监听UDP的某个端口就行了,下面的代码只要你从m_Port就可以不管你从哪个IP发过来的都能取到。所以服务端不要绑定IP.至于设备他要走哪个IP随便,只要端口与服务端对应就是了
     IPEndPoint ipep = new IPEndPoint(IPAddress.Any, m_Port);
      Socket s = new Socket(ipep.AddressFamily, SocketType.Dgram, ProtocolType.Udp);
      s.ExclusiveAddressUse = false;
      s.Bind(ipep);
      

  5.   


    ..不是这样子的,PC不管你有多少个IP,PC只要管监听UDP的某个端口就行了,下面的代码只要你从m_Port就可以不管你从哪个IP发过来的都能取到。所以服务端不要绑定IP.至于设备他要走哪个IP随便,只要端口与服务端对应就是了
     IPEndPoint ipep = new IPEndPoint(IPAddress.Any, m_Port);
      Socket s = new Socket(ipep.AddressFamily, SocketType.Dgram, ProtocolType.Udp);
      s.ExclusiveAddressUse = false;
      s.Bind(ipep);
    多谢啊,可以了,我用的是UdpClient类通信,好像只需要IPEndPoint ipep = new IPEndPoint(IPAddress.Any, m_Port);这句代码就可以了,谢谢。
      

  6.   


    服务器绑定 IP 使用 IPAddress.Any。如果你看到什么具体 IP 的帖子,嘲笑一下是可以的。
      

  7.   

    是这样的。编写tcp程序需要学点基础。例如了解地址 0.0.0.0 等等的都分别代表什么意思。有了基础,你在提问时就比较具体和稍微深入一点,从而不至于招惹来大量错误的答案。