java编程急问题

来源:百度知道 编辑:UC知道 时间:2024/07/07 18:50:12
现在我遇见了一个问题·那就是·· 我现在在做一个聊天器·网络的·我用UDP做的运用发送数据包的形式作的,我当我的客户端与服务连好了之后我的客户端可以连续的给服务器发送消息·服务器能接到。而现在我想从我的服务器发消息给客户端·就需要这个客户端的端口号了·而对于客户端这边是每发送一句话就会有一个新的端口号· 而我在服务器这边就设置了一个int类型的变量 这样写的: ds = new DatagramSocket(5566);
dp = new DatagramPacket(b3,b3.length);
ds.receive(dp);
int port=dp.getPort();而在下面我发送我需要发送的东西所写(写的东西我字节在键盘上输入)的端口号我直接把port放到里的 我运行了 我输入一句话之后·这句话还是能够发送到我的客户端的但是服务器这边报错了说这个端口号已经被使用·因此我就不能发第二句话了··请帮助解决哈·感激不尽

你是不是每次都new一个新的对象,也就是说每发一句话都new一个socket,导致原来的socket没有用close()方法关闭,以至于新的socket的端口被占用

多线程处理接受
因为一个端口打开使用后不关闭就不能再给别的使用。
多线程:每个线程监听一个端口,端口是递增的。这样就不会冲突了

要想创建同一端口必须先关闭,就像家里门关了才能再开一样.