java中UDP通信:DatagramSocket、DatagramPacket使用

简介

UDP是面向无连接的通信,不需要像TCP那样建立连接,所以UDP相对于TCP来说速度更快,但是无连接带来的弊端就是不可靠,会出现掉帧的现象。在通讯的过程中服务端一直监听指定的端口,而客户端只负责向服务端所在的端口传输数据即可。
java中提供了DatagramSocket和DatagramPacket来进行UDP通信。下面通过例子介绍java中UDP的使用。

DatagramPacket

DatagramPacket主要是用于打包需要发送的数据,它有两个构造函数,一个用来发送数据使用,另一个用来接收数据使用。
发送数据构造函数:
public DatagramPacket(byte[] buf,int length,InetAddress address,int port)
把长度为length的数据包buf发送到address主机的port端口
接收数据构造函数:
public DatagramPacket(byte[] buf,int length)
接收长度为length的数据储存到buf中

DatagramSocket

DatagramSocket是用来发送和接收数据包的套接字,负责发送DatagramPacket数据包或者接收DatagramPacket数据包。
DatagramSocket()
构建一个数据报套接字 ,绑定到本地主机的任何可用的端口,一般是发送数据的时候创建DatagramSocket对象使用
DatagramSocket(int port)
构建一个数据报套接字,绑定到本地主机的指定端口,一般是接收数据的时候创建DatagramSocket对象使用
DatagramSocket(int port, InetAddress laddr)
创建一个数据报套接字,绑定到指定的本地地址

示例

服务端程序代码:

package test;

import java.io.IOException;
import java.net.DatagramPacket;
import java
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值