是否可以在多个socket.send()上使用相同的端口,或者在创建DatagramSocket时指定端口?如果是这样的话。我正在尝试打孔,需要从使用的端口进行监听,我无法更改客户端发送的端口。
try {
DatagramSocket dSocket = new DatagramSocket();
InetAddress serverAddr = InetAddress.getByName(TARGETIP)
int msg_len = currentMsg.length();
byte[] message = currentMsg.getBytes();
DatagramPacket dPacket = new DatagramPacket(message,msg_len,serverAddr,3222);
dSocket.send(dPacket);
updateConversationHandler.post(new systemUIUpdate("UDP Packet from " + dSocket.getLocalPort()));
}
catch (Exception e){
e.getMessage();
e.printStackTrace();
}
每次通过事件处理程序运行时,dSocket.getLocalPort()显示不同的端口。
答案 0 :(得分:1)
是的,你可以。根据您的要求,有两种解决方案:
如果您想每次从随机端口发送数据包但是同一个端口,请不要像上一个答案中提到的那样关闭套接字。
如果您甚至想从创建DatagramSocket
中选择要发送的端口:
DatagramSocket dSocket = new DatagramSocket(CLIENT_PORT);
答案 1 :(得分:0)
当然可以。您每次都在创建一个新套接字,并且从不关闭它,因此端口保持使用状态,因此新套接字会获得一个新端口。
如果您想要相同的端口,请使用相同的套接字。