Я не получаю никаких сообщений от удаленной системы в программировании UDP java
Первая программа, которая работает на моем компьютере
import java.io.*; import java.net.*; public class NewUDP22 /*main class*/ { public static void main(String arg[])throws Exception { /*calling both threads ReceiveDataClass and SendDataClass*/ ReceiveDataClass t=new ReceiveDataClass(); SendDataClass obj=new SendDataClass(); t.start();/*starting threads here*/ obj.start(); } } class ReceiveDataClass extends Thread { byte receiveData[]=new byte[10024]; DatagramSocket ds; DatagramPacket dp; public void run() { try{ while(true) { //byte receiveData[]=new byte[1024]; ds=new DatagramSocket(50000); dp=new DatagramPacket(receiveData,receiveData.length); ds.receive(dp); String str=new String(dp.getData()); System.out.println("person1: "+str); ds.close(); } } catch(Exception e){} } } class SendDataClass extends Thread { public void run() { try { while(true) { byte sendData[]=new byte[100924]; DatagramPacket dp; InetSocketAddress sd=new InetSocketAddress("192.168.8.101",40000); DatagramSocket ds=new DatagramSocket(); BufferedReader dis; dis = new BufferedReader(new InputStreamReader(System.in)); String data=dis.readLine(); System.out.println("me: "+data); sendData=data.getBytes(); dp=new DatagramPacket(sendData,sendData.length,sd); ds.send(dp); ds.close(); } } catch(IOException e){} } }
Вот вторая программа, которая работает на другой системе
import java.io.*; import java.net.*; public class NewUDP2 /*main class*/ { public static void main(String arg[])throws Exception { /*calling both threads ReceiveDataClass and SendDataClass*/ ReceiveDataClass t=new ReceiveDataClass(); SendDataClass obj=new SendDataClass(); t.start();/*starting threads here*/ obj.start(); } } class ReceiveDataClass extends Thread { byte receiveData[]=new byte[10024]; DatagramSocket ds; DatagramPacket dp; public void run() { try { while(true) { //byte receiveData[]=new byte[1024]; ds=new DatagramSocket(40000); dp=new DatagramPacket(receiveData,receiveData.length); ds.receive(dp); String str=new String(dp.getData()); System.out.println("person1: "+str); ds.close(); } }catch(Exception e){} } } class SendDataClass extends Thread { public void run() { try { while(true) { byte sendData[]=new byte[100924]; DatagramPacket dp; InetSocketAddress sd=new InetSocketAddress("192.168.8.101",50000); DatagramSocket ds=new DatagramSocket(); BufferedReader dis; dis = new BufferedReader(new InputStreamReader(System.in)); String data=dis.readLine(); System.out.println("me: "+data); sendData=data.getBytes(); dp=new DatagramPacket(sendData,sendData.length,sd); ds.send(dp); ds.close(); } }catch(IOException e){} }
Что я уже пробовал:
Когда я запускаю эту программу на двух разных системах, я могу отправить сообщение на вторую систему, и он также получает сообщение. Но когда сообщение отправляется удаленной системой в мою систему, я не могу получить никакого сообщения, даже если сообщение отправлено удаленной системой. Я испробовал все способы,какие только мог. Это для проекта в моем университете.
CHill60
Вы могли бы узнать больше о том, что происходит, если бы вы удалили пустое catch
блоки-никогда просто так не" глотайте " исключения, подобные этому