UDP编程实现
来源:互联网 发布:淘宝返利机器人多少钱 编辑:程序博客网 时间:2024/05/17 00:59
UDP协议(用户数据报协议)是无连接的、不可靠的、无序的,速度快
进行数据传输时,首先将要传输的数据定义成数据报(Datagram),大小限制在64k,在数据报中指明数据索要达到的Socket(主机地址和端口号),然后再将数据报发送出去:
- DatagramPacket类:表示数据报包
- DatagramSocket类:进行端到端通信的类
1、服务器端实现步骤
① 创建DatagramSocket,指定端口号
② 创建DatagramPacket
③ 接受客户端发送的数据信息
④ 读取数据
import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;/** * UDP通讯服务端 * * @author wangguanghua * */public class Server { /** * @param args */ public static void main(String[] args) { DatagramSocket socket = null; try { //服务器端,实现基于UDP的用户登录 //1、创建服务器端DatagramSocket,指定端口 socket =new DatagramSocket(10010); //2、创建数据报,用于接受客户端发送的数据 byte[] data =new byte[1024];// DatagramPacket packet =new DatagramPacket(data,data.length); //3、接受客户端发送的数据 //此方法在接受数据报之前会一致阻塞 socket.receive(packet); //4、读取数据 String info =new String(data,0,data.length); System.out.println("我是服务器,客户端告诉我"+info); //========================================================= //向客户端响应数据 //1、定义客户端的地址、端口号、数据 InetAddress address = packet.getAddress(); int port = packet.getPort(); byte[] data2 = "欢迎您!".getBytes(); //2、创建数据报,包含响应的数据信息 DatagramPacket packet2 = new DatagramPacket(data2,data2.length,address,port); //3、响应客户端 socket.send(packet2); } catch (IOException e) { e.printStackTrace(); } finally{ //4、关闭资源 socket.close(); } }}
2、客户端实现步骤
① 定义发送信息
② 创建DatagramPacket,包含将要发送的信息
③ 创建DatagramSocket
④ 发送数据
import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;/** * * UDP通讯客户端 * * @author wangguanghua * */public class Client { /** * @param args */ public static void main(String[] args) { try { //客户端 //1、定义服务器的地址、端口号、数据 InetAddress address =InetAddress.getByName("localhost"); int port =10010; byte[] data ="用户名:admin;密码:123".getBytes(); //2、创建数据报,包含发送的数据信息 DatagramPacket packet = new DatagramPacket(data,data.length,address,port); //3、创建DatagramSocket对象 DatagramSocket socket =new DatagramSocket(); //4、向服务器发送数据 socket.send(packet); //接受服务器端响应数据 //====================================== //1、创建数据报,用于接受服务器端响应数据 byte[] data2 = new byte[1024]; DatagramPacket packet2 = new DatagramPacket(data2,data2.length); //2、接受服务器响应的数据 socket.receive(packet2); String raply = new String(data2,0,packet2.getLength()); System.out.println("我是客户端,服务器说:" + raply); //4、关闭资源 socket.close(); } catch (IOException e) { e.printStackTrace(); } }}
0 0
- 实现UDP协议编程
- UDP编程实现
- MFC的UDP编程实现
- JAVA Socket 实现 UDP 编程
- 代码笔记 | UDP编程实现
- QT:UDP网络编程实现
- JAVA Socket 实现 UDP 编程
- UDP通信编程------利用CAsyncSock类实现UDP异步通信
- UDP编程补充——UDP广播程序的实现
- UDP Socket编程 C/C++实现
- UDP通讯方式及编程实现步骤
- UDP通讯方式及编程实现步骤
- 在Java中实现UDP协议编程
- Linux下网络编程实现UDP
- MFC编程实现UDP通讯( 含ShellExecute)
- 在Java中实现UDP协议编程
- UDP通讯方式及编程实现步骤
- UDP通讯方式及编程实现步骤
- 文件夹备份软件的使用
- show status like "qcache%";
- A-1002
- UIImagePickerController获取图片详细信息
- ogg出现 ERROR: opening port for MGR MGR (No route to host).
- UDP编程实现
- Android Studio 小技巧/快捷键 合集
- 经典SQL语句——提升篇
- (004)Andriod基本控件
- Adobe AIR提示不允许安转,请与管理员联系解决方案
- writer
- 管道--过滤器之千年虫问题
- 安装python redis模块
- ORACLE数据库ARCHIVELOG,NOARCHIVELOG模式转换简单总结,Redo Log(重做日志)Archive Log(归档日志)