簡體   English   中英

Java udp客戶端無法接收服務器發送的數據包

[英]java udp client couldnt receive packet send by server

從Java編程udp的每一件事工作正常,除了服務器響應客戶端沒有detected.ie將數據發送到服務器正常工作,服務器接收到的數據和響應返回給client.The問題是數據無法接收到客戶端。 我使用的本地端口是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);
    }


}

您將兩個套接字都綁定到501,並且要發送到500。客戶端的發送端口是服務器的接收端口,但是由於只有一對變量而使自己感到困惑。 將其分為兩類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM