簡體   English   中英

java中的UDP套接字編程

[英]UDP socket programing in java

此示例代碼如下所示:

public class UDPServer
{

    enter code here
    /**
     * @param args
     */
    public static void main(String[] args) throws Exception{
        // TODO Auto-generated method stub
        DatagramSocket serverSocket=new DatagramSocket(9876);
        byte[] receiveData=new byte[1024];
        byte[] sendData=new byte[1024];
        while(true)
        {
            DatagramPacket receivePacket=new DatagramPacket(receiveData, receiveData.length);
            String sentence=new String(receivePacket.getData());
            InetAddress IPAddress=receivePacket.getAddress();
            int port=receivePacket.getPort();
            String capitalizedSentennce=sentence.toUpperCase();
            sendData=capitalizedSentennce.getBytes();
            DatagramPacket sendPacket=new DatagramPacket(sendData, sendData.length,IPAddress,port);
            serverSocket.send(sendPacket);
        }
    }

}

執行時出現以下錯誤:

 Exception in thread "main" java.lang.IllegalArgumentException: Port out of range:-1
        at java.net.DatagramPacket.setPort(Unknown Source)
        at java.net.DatagramPacket.<init>(Unknown Source)
        at java.net.DatagramPacket.<init>(Unknown Source)
        at UDPServer.main(UDPServer.java:21)

有人可以幫我解決嗎? 此外,如果可能,請提供更多信息,為什么會發生這種情況。

您忘記在receivePacket.接收任何receivePacket. 所以那里什么都沒有。 沒有端口號,沒有源地址,沒有數據。

暫無
暫無

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

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