网上看到的都是接收端和发送端分开的,不适合我的业务。我想实现这么一个功能,我需要通过udp去收发数据,当我监听一个端口后,会有好多个客户端发来数据,保存这些ip和端口,然后我可以选择每个ip客户端去回复数据,但这个过程中存在一个问题,比如我用udp监听8000端口,回复给客户端的数据必须是通过8000这个端口发出去的,否则客户端接收不到。高手如果可以用swing写一个例子的话,太感激不尽了,可以包含打开,关闭端口,接收到数据后在界面中有个列表显示发来的ip,通过选择这些ip就可以回发数据。可能功能对于大家比较简单,可是对于我这个菜鸟来说,我的确不会,网上的也没有合适的。不知道可以不,可以的话高手发我邮箱吧[email protected]特别感谢,奉上我的所有积分。java udp通信 求助
// 采用循环接收数据
while (true) {
// 读取Socket中的数据,读到的数据放入inPacket封装的数组里
socket.receive(inPacket); // 组包,发回给原端口
outPacket = new DatagramPacket(... , ... , inPacket.getSocketAddress()); // 发送数据
socket.send(outPacket);
}
非常谢谢,我仔细查看了下只要用一个DatagramSocket来发的话就保证发和接是一个端口。我在看看,如何回复多个客户端,得把ip保存在set中,然后发的时候进行比较在发。应该理论对着。