私は単純なUDPサーバー/クライアントプログラムを持っています。ポートを転送し、サーバーはインターネット経由でパケットを送受信しましたが、リモートマシンのクライアントはそれらを受信できないため、クライアント側でポートを転送せずにパケットを受信する方法を考えています(偶数の場合)可能)?それが不可能な場合、クライアントがインターネット経由で UDP パケットを受信できるようにするにはどうすればよいですか?
クライアント受信スレッドは次のようになります。
public void run(){
DatagramSocket serverSocket = null;
while(true){
try {
serverSocket = new DatagramSocket(7000+clientNumber+100);
} catch (SocketException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
byte[] receiveData = new byte[1024];
DatagramPacket receiveX = new DatagramPacket(receiveData, receiveData.length);
try {
serverSocket.receive(receiveX);
} catch (IOException e) {
System.out.println("Nepagavau paketo");
}
String korX = new String( receiveX.getData());
Play.priesoX = Float.parseFloat(korX);
serverSocket.close();
}