码迷,mamicode.com
首页 > 编程语言 > 详细

java学习笔记 UDP协议

时间:2016-09-01 14:20:04      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

TCP的所有操作都建立在可靠的链接

UDP(数据报协议)发送的消息对方并不一定会接收到,所有的信息都是以数据报的形式发出

使用DatagramSocket类和DatagramPacket类完成操作

服务端UDP:

import java.net.*;
import java.io.*;

//定义服务端接收信息
public class TestUdpServer {
    public static void main(String[] args) {
        try {
            DatagramSocket ds = new DatagramSocket(9000);//设定监听端口号
            byte bytes[] = new byte[1024];//1KB
            DatagramPacket dp = new DatagramPacket(bytes,bytes.length);//DatagramPacket(byte[] buf, int length)构造方法
            //设定循环接收
            String str = null;
            while (true) {
                ds.receive(dp);//阻塞式方法,一直到接收到数据才解锁
                System.out.println("接收数据 : ");
                str = new String(bytes,0,dp.getLength());    //注意receive之后,dp填充的是bytes数组
                System.out.println(str + ": "+ dp.getAddress().getHostName() + "-----" + dp.getSocketAddress());
            }
        }catch(SocketException e1) {
            e1.printStackTrace();    
        }catch(IOException e2) {
            e2.printStackTrace();    
        }
    }    
}

客户端UDP:

import java.net.*;
import java.io.*;

//定义客户端发送信息
public class TestUdpClient {
    public static void main(String[] args) {
        try {
            DatagramSocket ds = new DatagramSocket(8888);//设定监听端口
            String str = "Hello Word!";
            byte bytes[] = str.getBytes();
            //DatagramPacket(byte[] buf, int offset, int length, SocketAddress address)
            //InetSocketAddress(InetAddress addr, int port)
            DatagramPacket dp = new DatagramPacket(bytes,0,bytes.length,new InetSocketAddress("192.168.0.121",9000));
            ds.send(dp);
            ds.close();
        }catch(SocketException e) {
            e.printStackTrace();    
        }catch(IOException e2) {
            e2.printStackTrace();    
        }
    }    
}

结果:

技术分享

java学习笔记 UDP协议

标签:

原文地址:http://www.cnblogs.com/yhwsy/p/5829510.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!