文档章节

UDP 协议简单编程

Element0506
 Element0506
发布于 2015/02/05 09:45
字数 367
阅读 120
收藏 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
粉丝 11
博文 64
码字总数 18174
作品 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 协议的通信

前面我们所实现的通信程序,是基于 TCP 协议的,有连接的方式。也就是在创建 socket 的时候,socket 函数第二个参数总是指定为 SOCK_STREAM,第三个 protocol 参数指定为 0,即默认使用 TCP ...

q1007729991
2017/04/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

wait()被notify()后,接着执行wait()后面的语句

wait()被notify()后,接着执行wait()后面的语句

noteman
5分钟前
0
0
Ubuntu集群-使用MAAS进行裸机安装

Ubuntu使用MAAS装机的七个步骤。 1、Setup your hardware You need one small server for MAAS and at least one server which can be managed with a BMC. It is recommended to have the M......

openthings
18分钟前
0
0
OSX | SafariBookmarksSyncAgent意外退出解决方法

1. 启动系统, 按住⌘-R不松手2. 在实用工具(Utilities)下打开终端,输入csrutil disable, 然后回车; 你就看到提示系统完整性保护(SIP: System Integrity Protection)已禁用3. 输入reboot回车...

云迹
今天
4
0
面向对象类之间的关系

面向对象类之间的关系:is-a、has-a、use-a is-a关系也叫继承或泛化,比如大雁和鸟类之间的关系就是继承。 has-a关系称为关联关系,例如企鹅在气候寒冷的地方生活,“企鹅”和“气候”就是关...

gackey
今天
4
0
读书(附电子书)|小狗钱钱之白色的拉布拉多

关注公众号,在公众号中回复“小狗钱钱”可免费获得电子书。 一、背景 之前写了一篇文章 《小狗钱钱》 理财小白应该读的一本书,那时候我才看那本书,现在看了一大半了,发现这本书确实不错,...

tiankonguse
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部