java udp客户端无法接收服务器发送的数据包

时间:2012-07-22 14:35:31

标签: java

从java udp编程

每件事都运行正常,除了没有检测到响应客户端的服务器。发送数据到服务器没问题,服务器收到数据并回复客户端。问题是数据没有接收到客户。 我使用的本地端口是501 服务器侦听端口是500,我将数据发送到500到服务器并在客户端等待501的连接。代码可以说明这一点: 这是接收线程..不知道哪里出错了!注意我正在使用在线服务器。

String myipAddress = "10.100.69.174";
String SendingIp = "108.163.180.54";
String sendinPort = "500";
String myRecievePortNo="501";

public void run() 
    {
        try {

             recievingSocket = new DatagramSocket(Integer.parseInt(myRecievePortNo), InetAddress.getByName(myipAddress));
            while (true) 
            {

                byte[] data = new byte[1024];
                DatagramPacket recievingPacket = new DatagramPacket(data, data.length);
                recievingSocket.receive(recievingPacket);
                String mydata = new String(data, 0, data.length);
                 System.out.printf("Hello recieve"+mydata);
                }
            }
        } 
        catch (Exception EX) 
        {
            JOptionPane.showMessageDialog(null, "Error Message" + EX, "Error", JOptionPane.ERROR_MESSAGE);
        }

    }






//this section is call when user click the send button
public void sendData(String toServer) {
    try
    {
        DatagramSocket sendingSocket = new DatagramSocket(Integer.parseInt(myRecievePortNo));
        byte[] data = toServer.getBytes();
        DatagramPacket sendingPacket = new DatagramPacket(data, data.length, InetAddress.getByName(SendingIp), Integer.parseInt(sendinPort));
        sendingSocket.send(sendingPacket);
        sendingSocket.close();
    }
    catch (Exception EX) 
    {
        JOptionPane.showMessageDialog(null, "Sending Error :" + EX, "Error", JOptionPane.ERROR_MESSAGE);
    }


}

1 个答案:

答案 0 :(得分:0)

您将两个套接字绑定到501并且您要发送到500.客户端的发送端口是服务器上的接收端口,但是您只有一对变量而感到困惑。将其分为两类。