最近看到UDP接收消息都是要用UDPClient绑定端口的,我在程序中用绑定端口的方式,自己发广播自己能接到,但是如果通信双方在一个机器上运行,双方都绑定UDP端口就会出现重复绑定端口的问题,不知道这个问题有没有好的解决方法,还是就不能在一个机器上运行两个互相用UDP通信的程序呢?(不是不能放到两个机器上测试,就是想让在一个机器上测试也行的通)我UDP使用的不多,希望有经验的高手多指点

解决方案 »

  1.   

    應該可以,因為UDP和TCP不同,UDP採用是的虛擬端口的綁定方式,隻有在發送時,才佔據端口,隻要不是兩個UDP同時發送,就不會出會端口重復綁定的錯誤,你再試試,寫兩個線程。
      

  2.   

    不是,那是在两个程序中,服务器的udpClient一直在listen,客户端发送消息后也要listen,由于双方使用一个UDP端口,所以会出错
      

  3.   

    服务器启动监听的时候就要接收UDP信息,因为可能随时有客户端寻找主机,如果接到寻找主机的信息就给客户端发一个UDP消息通知他本机器的地址及端口。
    客户端在想寻找主机的时候发送一个消息,之后一直要监听多个服务器的应答,这个倒是可以只listen一定时间就可以了,只是不能只listen一次而已。
    象这样的设计有没有问题,似乎就是不能在一个机器上运行的?端口绑定方面有没有什么好的解决方案啊
      

  4.   

    经“动态”两个字的提醒,我刚才想到 ,UDP发送数据未不需要用监听时使用的端口,这样服务器和客户端绑定不同的端口,而发信息发到对方的端口就好了 ,已经实现,谢谢~