文档章节

UDP 协议简单编程

Element0506
 Element0506
发布于 2015/02/05 09:45
字数 367
阅读 121
收藏 10
  1. 最近温故一下工作没有使用过的一些知识点,下面就是练习中使用的代码,提供给大家分享

  2. 客户端


  3. // 客户端
    public class UDPClient {
    
    	public static void main(String[] args) throws IOException {
    		DatagramSocket ds = null;// 定义接受数据的对象
    		byte[] data = new byte[1024]; // 开辟空间,接受数据
    		DatagramPacket dp = null; // 声明DatagramPacket对象
    		// 服务器端和客户端的要一致
    		ds = new DatagramSocket(9000); // 端口号
    		dp = new DatagramPacket(data, 1024); // 所有信息使用data保存
    		ds.receive(dp); // 接受数据
    
    		// dp的内容信息
    		String str = new String(dp.getData(), 0, dp.getLength()) + " from "
    				+ dp.getAddress().getLocalHost() + ":" + dp.getPort();
    
    		System.out.println(str);// 输出内容
    	}
    }
  4. 服务器端


  5. // 服务端
    public class UDPServer {
    	public static void main(String[] args) throws IOException {
    		DatagramSocket ds = null;
    		DatagramPacket dp = null;
    
    		ds = new DatagramSocket(3000);
    		String str = "hello World!";
    		// 构造数据报包,用来将长度为 length 的包发送到指定主机上的指定端口号。
    		dp = new DatagramPacket(str.getBytes(), str.length(),
    				InetAddress.getByName("localhost"), 9000);
    
    		System.out.println("发送信息");
    		ds.send(dp); // 服务端发送消息
    		ds.close();
    	}
    }
  6. 总结

    1.UDP中主要使用的是数据报协议发送的。

    2.UDP是属于不可靠协议,服务器端发送的消息,客户端不一定能收的到。

    3.UDP主要使用DatagramPacket和DatagramSocket两个类。

    4.DatagramPacket主要用于封装消息。

    5.DatagramSocket用于发送和接受消息。

    7.注意

    运行的时候,需要先运行客户端,然后再运行服务器端。


© 著作权归作者所有

共有 人打赏支持
Element0506
粉丝 12
博文 67
码字总数 18449
作品 0
南京
高级程序员
私信 提问
网络编程懒人入门(五):快速理解为什么说UDP有时比TCP更有优势

本文观点仅作参考,请根据自已系统的应用场景合理地选择数据传输层协议即可,无需盲目崇拜大牛言论。 1、前言 对于即时通讯开者新手来说,在开始着手编写IM或消息推送系统的代码前,最头疼的...

JackJiang2011
2017/12/19
0
0
网络编程懒人入门(四):快速理解TCP和UDP的差异

原作者:MeloDev,本文由即时通讯网重新修订发布,感谢原作者的无私分享。 1、前言 对于即时通讯开者新手来说,在开始着手编写IM或消息推送系统的代码前,最头疼的问题莫过于到底该选TCP还是...

JackJiang2011
2017/10/27
0
0
读懂Java中的Socket编程

餐前甜点 Unix的输入输出(IO)系统遵循Open-Read-Write-Close这样的操作范本。当一个用户进程进行IO操作之前,它需要调用Open来指定并获取待操作文件或设备读取或写入的权限。一旦IO操作对象被...

lwwjing
2015/12/15
85
0
Linux网络编程:什么是Linux下的网络编程?

想知道Linux下的网络编程培训×××?先来了解一下什么是Linux下的网络编程吧!Linux下的网络编程指的是socket套接字编程,入门比较简单。在学校里学过一些皮毛,平时就是自学玩,没有见识过...

长沙千锋
05/23
0
0
136-基于 UDP 协议的通信

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/q1007729991/article/details/68947623 前面我们所实现的通信程序,是基于 TCP 协议的,有连接的方式。也就是...

--Allen--
2017/04/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

《阿里铁军》的读书笔记和读后感范文2600字

《阿里铁军》的读书笔记和读后感范文2600字: 在中国互联网,有一个流传很广的说法是,百度强在技术,腾讯强在产品,阿里强在运营。虽然发展到今天,已经不能再用这样简单的视角来看待这三个...

原创小博客
3分钟前
1
0
怎样实际项目中运用责任链模式

1 模式概要 1.1 简介 责任链模式为请求创建一个接收者对象链,每个接收者都包含对另一个接收者的引用,如果一个对象不能处理该请求,那么它会把请求传给下一个接收者,依此类推 责任链模式避...

小刀爱编程
18分钟前
1
0
【宇润日常疯测-004】JS 遍历数组如何快!快!快!

首先,我就是一后端全栈,对前端也只是会用罢了。闲的无聊来测测,不深究,只看表面,不喜勿喷! 遍历数组在写 JS 代码时候一定是经常用的,那么怎么遍历能达到最高效率呢,很多人一定没有测...

宇润
22分钟前
9
1
Linux系统如何定制History输出格式

Linux系统使用History命令来查看系统的运行记录,从而找出一些问题。但是History输出的数据中常常没有时间等信息。本文就来教大家Linux系统如何定制History输出格式。   具体方法如下 以r...

linuxprobe16
24分钟前
1
0
(一) pyhon 基础语法(数值 字符串 元组 列表 字典)

1、python的数据类型: 数值 字符串 列表 元组 字典; 数值类型包括; 整型(int) 长整型(long) 浮点型(float) 复数型 字符串; 可以通过type() 来查看是什么类型的; 注释:len()只支持 字符...

芬野de博客
24分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部