UDP

Posted xidian2014

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UDP相关的知识,希望对你有一定的参考价值。

package com.test;

import org.junit.Test;

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

public class TestUDP {
    @Test
    public void client() {
        DatagramSocket ds = null;
        try {
            ds = new DatagramSocket();

            String data = "hellow udpserver";
            DatagramPacket dp = new DatagramPacket(data.getBytes(),
                    data.length(), InetAddress.getLocalHost(),
                    666
            );
            ds.send(dp);

            byte[] buf = new byte[1024];
            DatagramPacket dpIn = new DatagramPacket(buf, buf.length);
            ds.receive(dpIn);
            System.out.println(new String(dpIn.getData(), 0, dpIn.getLength()));

            ds.close();
        } catch (SocketException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (ds != null) {
                ds.close();
            }
        }
    }

    @Test
    public void server() {
        DatagramSocket ds = null;
        try {
            ds = new DatagramSocket(666);
            byte[] buf = new byte[1024];
            DatagramPacket dp = new DatagramPacket(buf, buf.length);
            ds.receive(dp);

            byte[] data = dp.getData();
            int length = dp.getLength();
            InetAddress ipClient = dp.getAddress();
            int port = dp.getPort();

            String str = new String(data, 0, length);
            System.out.println("Server received:" + str);

            String dataout = "hellow udpClient, i have received";
            DatagramPacket dpout = new DatagramPacket(dataout.getBytes(), dataout.length(), ipClient, port);
            ds.send(dpout);

        } catch (SocketException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (ds != null) {
                ds.close();
            }
        }
    }
}

 

以上是关于UDP的主要内容,如果未能解决你的问题,请参考以下文章

Python 之 Socket编程(TCP/UDP)

UDP包划分为IP分片时,如何在第一个UDP分片中填写UDP长度?

UDP 通讯代码

UDP通讯代码

UDP案例代码

UDP案例代码