java中Socket使用UDP传输

Socket通信

使用UDP协议进行通信
**UDP:**不需要建立连接的通信协议,例如发送短信;即时通信,这种通信的速度快,但是可能存在数据包的丢失。
**DatagramPacket:**将发送数据进行打包
**DatagramPacket:**用来发送打包的数据后,后者接收打包的数据报

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class Client {

	public static void main(String[] args) throws Exception {
		/**
		 * 实现UDP协议通信的客户端
		 */
		System.out.println("==========这是客户端=============");
		
		String content = "初次学习Socket网络编程!";
		byte[] bytes = content.getBytes();
		
		//声明byte数组,为最原始的接收ip地址
		byte[] addr = {127,0,0,1};
		//创建InetAddress对象,封装需要传输到的主机
		InetAddress address = InetAddress.getByAddress(addr);
		
		//创建DatagramPacket对象,封装数据以及需要传输到的地址和端口
		DatagramPacket packet = new DatagramPacket(bytes, bytes.length,address,7777);
		
		//创建DatagramSocket对象,用来将数据进行打包服务,指定快递员的端口为8888
		DatagramSocket socket = new DatagramSocket(8888);
		
		//实现数据传输
		socket.send(packet);
		
		socket.close();	
	}
}
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class Server {

	public static void main(String[] args) throws IOException {
		
		/**
		 * 实现UDP协议通信的服务端
		 */
		System.out.println("==========这是服务端=============");
		//创建DatagramSocket对象,用来监听7777端口,若有数据来传输,则接受
		DatagramSocket socket = new DatagramSocket(7777);
			
		//创建字节数组
		byte[] by = new byte[512];
		//创建DatagramPacket对象,用来接收数据,以字节数组形式接收
		DatagramPacket packet = new DatagramPacket(by,by.length);
		
		//接收客户端发送过来的数据
		socket.receive(packet);
		
		//获得用户发送的数据
		byte[] data = packet.getData();
		//获得客户端发送过来数据的长度以及端口
		int length = packet.getLength();
		int port = packet.getPort();
		
		System.out.println(new String(data,0,length));
		socket.close();	
	}
}

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值