java UDP文件传输为多客户端,不能绑定相同的地址

时间:2012-01-08 04:12:46

标签: java udp

我的项目是UDP文件传输。

流程是:

  1. 服务器接收客户端请求
  2. 服务器通过UDP数据包将文件字节发送到客户端
  3. 当新客户端连接(线程)时,
  4. 循环1-2

    我需要为一个客户端创建一个套接字? 当我在我的localhost中测试并创建多个套接字时,它会引发异常(地址已经在使用中)

    我该如何实现该应用?任何的想法 ?或者我的观念不正确?

1 个答案:

答案 0 :(得分:0)

一次只能有一个套接字绑定到任何给定的UDP端口。

听起来你可能有多个线程调用bind(),这会导致除第一个之外的所有线程都返回“已在使用中”错误。在生成工作线程之前,您只需要在开始时调用bind()一次。

如果您需要多个线程来处理传入消息,您应该让一个调度程序线程侦听套接字并将消息发送到工作线程。

如果您需要多个线程来发送传出消息,它们都可以使用相同的描述符。

如果您需要多个进程来执行此功能,则需要使用单独的端口号。