在UDP Java编程中,我没有从远程系统收到任何消息

在UDP Java编程中,我没有从远程系统收到任何消息,java,udp,Java,Udp,在我的电脑上运行的第一个程序 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*/

在我的电脑上运行的第一个程序

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){}


    }


}
当我在两个不同的系统上运行这两个程序时,我可以在第二个系统上发送消息,他也在接收消息。但当远程系统向我的系统发送消息时,我无法获得任何消息,即使消息是由远程系统发送的。我试了所有我能做的方法。这是我大学的一个项目

以下是两个系统的屏幕截图:


所有编码都正确。只需关闭系统中的windows防火墙以及其他防病毒软件。因为它不允许接收任何类型的UDP数据包。

请删除Android标记,这与此无关