千家信息网

怎么理解java UDP通信客户端与服务器端

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,本篇内容主要讲解"怎么理解java UDP通信客户端与服务器端",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么理解java UDP通信客户端与服务器端"
千家信息网最后更新 2024年11月23日怎么理解java UDP通信客户端与服务器端

本篇内容主要讲解"怎么理解java UDP通信客户端与服务器端",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么理解java UDP通信客户端与服务器端"吧!

最初Udp是以字节为单位进行传输的,所以有很大的限制

服务器端:

import java.net.*;public class TestUdpServer { public static void main(String[] args) throws Exception { byte[] buf = new byte[1024]; DatagramPacket dp = new DatagramPacket(buf,buf.length);// try { DatagramSocket ds = new DatagramSocket(2345); while(true) { ds.receive(dp); System.out.println(new String(buf,0,dp.getLength()));// }// } catch (Exception e) {// e.printStackTrace(); } }}

用户端:

import java.net.*;public class TestUdpClient { public static void main(String[] args) throws Exception { byte[] buf = new byte[1024]; buf = (new String("hello")).getBytes(); DatagramPacket dp = new DatagramPacket(buf,buf.length,new InetSocketAddress("127.0.0.1",2345));// try { DatagramSocket ds = new DatagramSocket(5679); ds.send(dp); ds.close();// } catch (Exception e) {// e.printStackTrace();// } }}

注:由于必须以字节为单位进行传输,Udp的传输用了一个容器类的东西,用来接收字节

先建一个字节数组,然后以这个数组创建容器。用来传输数据。

实例:传输一个Long类型的数据

服务器端:

import java.io.*;import java.net.*;public class UdpServer { public static void main(String[] args) throws Exception { byte[] buf = new byte[1024]; DatagramPacket dp = new DatagramPacket(buf,buf.length); DatagramSocket ds = new DatagramSocket(2345); while(true) { ByteArrayInputStream is = new ByteArrayInputStream(buf); DataInputStream dis = new DataInputStream(is); ds.receive(dp); System.out.println(dis.readLong()); } }}

用户端:

import java.io.*;import java.net.*;public class UdpClient { public static void main(String[] args) throws Exception { Long n = 10000L; ByteArrayOutputStream os = new ByteArrayOutputStream(); DataOutputStream dos = new DataOutputStream(os); dos.writeLong(n); byte[] buf = new byte[1024]; buf = os.toByteArray(); System.out.println(buf.length); DatagramPacket dp = new DatagramPacket(buf,buf.length, new InetSocketAddress("127.0.0.1",2345)); DatagramSocket ds = new DatagramSocket(5679); ds.send(dp); ds.close(); }}

注:由于Udp是以字节为单位进行传输的,所以要用到ByteArray的输入和输出流用来进行数据的转换。

另外,相较于Output流,Input流在构建的时候需要一个数组作为参数,用来存放数据。

在基本的Udp传输的基础上,代码分为两部分,一部分是把传输或接受的Long类型数据转换为byte类型的数据,然后是基本的数据传输。

另一方面,直接的字节流不能转换为Long类型,同理,刚接收的数据是字节类型,直接打印(System.out.println)是以字符串类型输出的,都需要通过Data的数据流进行转换。

到此,相信大家对"怎么理解java UDP通信客户端与服务器端"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

数据 传输 字节 类型 服务器 服务 客户 客户端 通信 单位 数组 内容 容器 用户 用户端 学习 输出 实用 很大 更深 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 计算机网络技术学校的培训经历 女生适合做软件开发还是硬件 双服务器分流 广州联通网络技术 多淘网络技术有限公司 和平精英地下城哪个服务器最肥 app云服务器怎么收费 数据库怎样进行选择存储 服务器PSU断一个会死机吗 德惠智能网络技术什么价格 韩国高防御服务器租用 软件开发方法是什么 中国联通宽带服务器地址 网络安全试卷及答案1 辽宁省联通服务器地址 呼和浩特装修网络安全 工控软件开发业务咨询 网络安全反恐手抄报 软件开发代理公司哪家好 网络安全清查工作方案 网络安全和信息化工作情况 传奇自建服务器 会议服务管理系统服务器 数据库物理存储结构表现为什么的 网络安全你我有责黑板报 海南本地软件开发零售价格 苹果手机虚拟服务器搭建 数据库奶牛书有中文版么 外派中国人寿软件开发 网络技术和网络安全的关系
0