Я пытаюсь создать базовую клиент-серверную программу для дейтаграмм с Java.
Я заставил сервер цепляться за порт 9321 на моем локальном компьютере.
Я сделалклиент на порту 9320 на моем локальном компьютере, затем отправьте данные по беспроводной сети маршрутизатора (192.168.1.100) на порт 9321, программа работает!
, затем я пытаюсь отправить пакет через (через маршрутизатор) интернет-IP139.195.12.183 (мой ip) на порту 9321, но это не сработало!есть исключение:
java.net.SocketException: Interrupted function call: Datagram send failed
Я настроил маршрутизатор для пересылки любого запроса на порт 9321 на мой компьютер, а затем я установил исключение для брандмауэра на моем компьютере на этом порту
это источник
String SERVER = "139.195.12.183";
sendString(SERVER, 9321, "Greetings"); <<
private void sendString(String IP, int port, String toSend) {
byte[] buf = toSend.getBytes();
DatagramPacket packet = null;
try {
packet = new DatagramPacket(buf, buf.length, InetAddress.getByName(SERVER), port);
ds.send(packet);<<
}catch(UnknownHostException e) {
System.out.println("unknownhostception");
}catch(IOException e) {
System.err.println("ioception "+e.getMessage());
}
}
у меня были другие ответы с другого форума, на котором было сказано:
"Как работают маршрутизаторы, вы не можете видеть свои внешние (WAN) Интернет-адрес из вашей внутренней сети (LAN). Если это то, что вы пытаетесь сделать, в этом нет ничего плохого, просто не будет работать.
Ian. "
Любое объяснение?