UDP协议的简单使用
来源:互联网 发布:西南政法大学王洪 知乎 编辑:程序博客网 时间:2024/05/18 02:26
一.UDP介绍
UDP协议的全称是用户数据报,在网络中它与TCP协议一样用于处理数据包。在OSI模型中,在第四层——传输层。他的去缺点是当报文发送之后,是无法得知其是否安全完整到达的。而他的优点是传输速度更快。通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。比如我们聊天用的ICQ和OICQ就是使用的UDP协议
二.示例
发送端:
/**
* udp的发送端
* 1.建立udp的socket服务对象
* 2.将要发送的数据封装成数据包
* 3.通过udp的socket服务将数据包发出
* 4.关闭资源
* @author jaques
*
*/
public class SendTest {
public static void main(String[] args) throws IOException{
//创建socket服务对象,参数为本地主机可用端口
DatagramSocket ds=new DatagramSocket(2500);
//将字符串存入byte数组 String s=new String("你好udp"); byte[] b=s.getBytes(); //返回给定主机的ip InetAddress ip=InetAddress.getByName("127.0.0.1"); //封装数据 DatagramPacket dp=new DatagramPacket(b,b.length,ip,8536); ds.send(dp); ds.close();
接受端:
package net.UDP;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
/**
* udp的接受端
*
* @author jaques
*
*/
public class ReceiveTest {
public static void main(String[] args) throws IOException{
//创建socket的服务对象,参数为指定端口号
DatagramSocket ds=new DatagramSocket(8536);
//创建接收数据包、
byte[] data=new byte[1024];
DatagramPacket dp=new DatagramPacket(data,data.length);
ds.receive(dp);
//拆包
int length=dp.getLength();
InetAddress ip=dp.getAddress();
int port=dp.getPort();
System.out.println(“发送端的ip地址:”+ip+”发送端的端口号”+port);
System.out.println(new String(data,0,length));
ds.close();
}
}
- UDP协议的简单使用
- 简单的UDP协议实现
- Udp协议的简单应用
- 基于UDP协议的简单聊天程序
- 在.net中使用Udp协议创建简单的聊天程序
- 在.net中使用Udp协议创建简单的聊天程序
- Qt中UDP协议的使用实例
- boost::asio 之udp协议的使用
- boost::asio 之udp协议的使用
- Java使用UDP协议收发数据简单实现
- java使用UDP协议
- DNS使用的是TCP协议还是UDP协议
- DNS使用的是TCP协议还是UDP协议
- DNS使用的是TCP协议还是UDP协议?
- DNS使用的是TCP协议还是UDP协议
- DNS使用的是TCP协议还是UDP协议
- DNS使用的是TCP协议还是UDP协议
- DNS域名解析使用的是TCP协议还是UDP协议?
- js 检测变量是否存在
- SSM框架--小功能整合
- python解析XML文件(基础)
- 《Python黑帽子》学习笔记
- 51Nod-1613-翻硬币
- UDP协议的简单使用
- hashMap和Hashtable的区别
- codeforces 479A(Expression) Java
- 一年的职业生涯(留给以后的自己看)
- 机器学习之分类回归树CART
- 关于无向图上的一些问题
- Linux【网络编程】——I/O多路转接之Poll服务器
- Linux上安装mysql数据库
- bzoj2877 [Noi2012]魔幻棋盘 二维线段树