千家信息网

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

发表于:2024-10-21 作者:千家信息网编辑
千家信息网最后更新 2024年10月21日,本篇内容主要讲解"怎么理解java UDP通信客户端与服务器端",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么理解java UDP通信客户端与服务器端"
千家信息网最后更新 2024年10月21日怎么理解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安全错误 数据库的锁怎样保障安全 平顶山网络技术销售价格 steam的mhw是什么服务器 前端软件开发面试什么软件 sql数据库全步骤 调度自动化网络安全 差个C2100服务器风扇整流罩 安徽信息化软件开发厂家现货 网络安全项目实施流程 在zend中建立数据库 29计算机网络技术是什么 如何看待网络安全这个行业 数据库对点餐系统功能的分析 国家网络安全宣传顺口溜 好听的互联网科技公司名称 幻萌网络安全工程师 怎么通过服务器更改设备储存信息 宁河软件开发怎么选 网络服务器配置与管理建议 我的世界造服务器如何弄公告 襄阳电信网络安全 软件开发模块划怎划分 网络安全法规文件解读 服务器没有发现目标资源 设计全局数据库 河南火鸡哥网络技术 云易恒基科技互联网有限公司 刀片服务器 主板电池 南阳哪里学计算机网络技术 数据库怎么查询三个表中一列数据 服务器那边收款会不会被查
0