首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 基於 Socket 實作 UDP 協定通訊範例

     編輯:Java 相關知識

Java 基於 Socket 實作 UDP 協定通訊範例。本站提醒廣大學習愛好者:此文章僅供參考,不一定能完全符合您的需求。以下是完整範例正文


本文範例說明如何使用 Java Socket 實作 UDP 協定通訊。分享給大家供參考。具體如下:

範例一:

接收端:

package com.socket.demo;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class UDPReceiveDemo {
    public static void main(String[] args) throws IOException {
        System.out.println("接收端啟動…………");
        DatagramSocket ds = new DatagramSocket(10002);
        byte[] buf = new byte[1024];
        DatagramPacket dp = new DatagramPacket(buf, buf.length);
        ds.receive(dp);
        String ip = dp.getAddress().getHostAddress();
        int port = dp.getPort();
        String text = new String(dp.getData(), 0, dp.getLength());
        System.out.println("-----" + ip + "----------" + port + "-----" + text);
        ds.close();
    }
}

發送端:

package com.socket.demo;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;

public class UDPSendDemo {
    public static void main(String[] args) throws IOException {
        System.out.println("發送端啟動…………");
        DatagramSocket ds = new DatagramSocket(8888);
        String str = "udp傳輸演示,go";
        byte[] buf = str.getBytes();
        DatagramPacket dp = new DatagramPacket(buf, buf.length,
                InetAddress.getByName("192.168.1.100"), 10002);
        ds.send(dp);
        ds.close();
    }
}

範例二(持續監聽與鍵盤輸入):

接收端:

package com.socket.demo;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class UDPReceiveDemo2 {
    public static void main(String[] args) throws IOException {
        System.out.println("接收端啟動…………");
        DatagramSocket ds = new DatagramSocket(10003);
        while (true) {
            byte[] buf = new byte[1024];
            DatagramPacket dp = new DatagramPacket(buf, buf.length);
            ds.receive(dp);
            String ip = dp.getAddress().getHostAddress();
            int port = dp.getPort();
            String text = new String(dp.getData(), 0, dp.getLength());
            System.out.println("-----" + ip + "----------" + port + "-----" + text);
        }
    }
}

發送端:

package com.socket.demo;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class UDPSendDemo2 {
    public static void main(String[] args) throws IOException {
        System.out.println("發送端啟動…………");
        DatagramSocket ds = new DatagramSocket(9999);
        BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
        String line = null;
        while ((line = bufr.readLine()) != null) {
            byte[] buf = line.getBytes();
            DatagramPacket dp = new DatagramPacket(buf, buf.length,
                    InetAddress.getByName("192.168.1.100"), 10003);
            ds.send(dp);
            if ("886".equals(line)) break;
        }
        ds.close();
    }
}

執行結果圖如下:

接收端:

發送端:

希望本文所述對大家的 Java 程式設計有所幫助。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved