Java基礎—socket編程—UDP發送及接收

簡介:在同一主機上測試,同一IP地址,不一樣的端口,使用UDP發收數據java

使用socket編程,經過UDP協議發送數據

需求:使用UDP協議向某IP的某端口發送一條數據編程

UdpSend.java網絡

package com.Train;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;

//udp傳輸:
/**步驟:---
 * 一、創建udp socket 接收和發送點
 * 二、提供數據,打包
 * 三、使用send發送
 * 四、關閉資源
 * */

public class UdpSend {

    public static void main(String[] args) throws SocketException, UnknownHostException {
        /** 一、創建udp socket端點 */
        
        DatagramSocket s = new DatagramSocket();
        
        /** 二、提供數據,封裝打包  ---DatagramPacket(byte[] buf, int length, InetAddress address, int port)  */
        
        byte[] bs = "正在使用UDP發送--我是數據! ".getBytes(); 
        DatagramPacket dp = new DatagramPacket(bs, bs.length, InetAddress.getByName("192.168.1.189"), 8070);

        /** 三、使用send發送 */
        try {
            s.send(dp);
        } catch (IOException e) {
            System.out.println("發送失敗: ");
            e.printStackTrace();
        }
        
        /** 四、關閉資源 */
        s.close();
        
    }

}

運行以上Java程序:eclipse

在網絡數據收發工具中獲取到數據:socket

image

 

使用socket編程,經過UDP協議接收數據

UdpRecv.java工具

package com.Train;

import java.net.DatagramPacket;
import java.net.DatagramSocket;

//udp傳輸: 接收
/**步驟:---
* 一、創建udp socket,設置接收端口
* 二、預先建立數據存放的位置,封裝
* 三、使用receive阻塞式接收
* 四、關閉資源
* */
public class UdpRecv {

    public static void main(String[] args) throws Exception{
        /**一、創建udp socket,設置接收端口*/
        
        DatagramSocket ds = new DatagramSocket(3020);

        /**二、預先建立數據存放的位置,封裝*/
        byte [] bbuf = new byte [1024];
         DatagramPacket dp = new DatagramPacket(bbuf,bbuf.length);
         
         /**三、使用receive阻塞式接收*/
         ds.receive(dp);
          
         System.out.println("ip::"+dp.getAddress().getHostAddress()+"\nport::"+dp.getPort()+"\ndata::"+new String(dp.getData()));
         
         /**四、關閉資源*/
         ds.close();
    }

}

測試步驟:測試

一、運行UdpRecv.java程序後,觀察console的輸出:無spa

二、使用網絡收發工具,經過UDP協議向3020端口發送數據,點擊send:.net

image

三、eclipse<console>:code

image

相關文章
相關標籤/搜索