萌新解--Java网络编程之UDP

 Java网络编程之UDP

       UDP协议为无连接的通信协议,在传数据前发送端与接收端不会先建立连接,也就是你发我就收但不一定会收到哦吐舌头,以我们自身为发送端,我们不会事先让接收方知道我要给接收方发数据啦。就像异地的小情侣一样,小哥哥选好时间去看小姐姐而不事先告诉她。因为是无连接的,这期中就会出现丢失数据包的现象,就好像虽然要去看小姐姐,但因为各种原因没能到达小姐姐那边,比如说大灰机延误啦。。。小哥哥也就不能在自己预定的时间到达大哭。(PS希望我的灰机不会延误可怜)我们以此为例来看下Java中简单的UDP要怎么实现吧微笑。对了在看代码前我们要先知道Java中的两个类DatagramSocket“发送码头”,DatagramPacket“集装箱”。可以参照API文档来看一下,我们要把数据放入箱子后才能送到码头发出,同样的接收的地方同样需要码头。

接收端代码

import java.net.*;
public class Girl {
	//接收端,这边是小姐姐那边哦
	public static void main(String[] args) throws Exception{
		// TODO Auto-generated method stub
		//先来定义一个用来接收数据的字节数组
		byte[] buf = new byte[1024];
		//定义接收的监听端口,我们这边随便写一个8954,等下发送端那边也要给这个端口发哦
		DatagramSocket ds = new DatagramSocket(8954);
		//定义接收对象
		DatagramPacket dp = new DatagramPacket(buf,1024);
		//监听端口等待接收数据
		ds.receive(dp);
		//将数据打印到屏幕
		String str = new String(dp.getData(),0,dp.getLength());
		System.out.println(str);
		
		ds.close();//注意资源大释放
	}

}
发送端代码
import java.net.*;
public class Boy {
	//发送端,这边是小哥哥那边哦
	public static void main(String[] args) throws Exception{
		// TODO Auto-generated method stub
	//两边代码类似只是这边用send方法来发送
	DatagramSocket ds = new DatagramSocket(3000);
	String str = "I am coming";
	DatagramPacket dp = new DatagramPacket(str.getBytes(),str.length(),InetAddress.getByName("localhost"),8954);
	System.out.println("send the message");
	ds.send(dp);
	ds.close();
	}

}
吐舌头欢迎大佬赐教

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值