Код - это простая программа для отправки материалов с одного компьютера на другой. Это работает, если клиент и сервер подключены к разным сетям, но не будет работать, если это одна и та же сеть. (переадресация портов включена для всех используемых портов)
Это для другой программы, которая работает как блокчейн. Я не уверен, что это проблема маршрутизатора. Я предполагаю, что переадресация портов не будет работать внутри сети между клиентами сети, что может показаться проблемой роутера ПОМОГИТЕ!
Клиентская сторона:
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception{
String ipaddress = "70.121.56.92";
DatagramSocket reciever = new DatagramSocket(3535);
DatagramPacket pacc = new DatagramPacket(new byte[98],98);
Scanner s = new Scanner(System.in);
if (s.nextLine().equals("0")) {
reciever.receive(pacc);
System.out.println(Arrays.toString(pacc.getData()));
}
}
}
Сторона сервера:
import java.net.*;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception{
Scanner kb=new Scanner(System.in);
DatagramSocket me=new DatagramSocket(3537);
String msg="";
while(!msg.equals("stop")){
System.out.print("msg: ");
msg=kb.nextLine();
byte[] bs=new byte[msg.length()];
for(int i=0; i <msg.length(); ++i){
bs[i] = (byte) msg.charAt(i);
}
DatagramPacket dgp=new DatagramPacket(bs, bs.length, InetAddress.getByName("70.121.**.9*"//this is my public router address), 3535 );
me.send(dgp);
}
}
}
В другой сети он показывает строку, которую я положил в клиент на консоли сервера. В той же сети он застревает внутри метода reciever.recieve ()