习题-Java网络编程

目录

1.TCP-对象

2.UDP​​​​​​​​​​​​​​


1.TCP-对象

利用TCP传输对象信息,需要对对象进行实例化

User类:

package dh09.demo02;import java.io.Serializable;public class User implements Serializable {private String name;private String pwd;public User() {}public User(String name, String pwd) {this.name = name;this.pwd = pwd;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}}

服务器端:

package dh09.demo02;import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;//服务器
public class Demo01 {public static void main(String[] args) {try {ServerSocket serverSocket = new ServerSocket(8090);Socket socket = serverSocket.accept();InputStream iStream = socket.getInputStream();ObjectInputStream ois = new ObjectInputStream(iStream);User user = (User) ois.readObject();System.out.println("客户端说:"+user.getName()+"-"+user.getPwd());//通过输出流给客户端一个响应OutputStream os = socket.getOutputStream();String reply = "欢迎登陆";os.write(reply.getBytes());os.close();ois.close();iStream.close();socket.close();serverSocket.close();} catch (Exception e) {e.printStackTrace();}}}

客户端:

package dh09.demo02;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.Socket;//客户端
public class Test01 {public static void main(String[] args) {try {Socket socket = new Socket("localhost", 8090);OutputStream oStream = socket.getOutputStream();ObjectOutputStream oos = new ObjectOutputStream(oStream);User user = new User("admin","123456");oos.writeObject(user);socket.shutdownOutput();InputStream iStream = socket.getInputStream();BufferedReader br = new BufferedReader(new InputStreamReader(iStream));String reply;while ((reply = br.readLine())!=null) {System.out.println("服务器响应说:"+reply);}br.close();iStream.close();oos.close();oStream.close();socket.close();} catch (IOException e) {e.printStackTrace();}}}

2.UDP

package dh09.UDPDemo;import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;public class ReceiveMessageDemo {public static void main(String[] args) {//接收数据//1.创建DatagramSocket对象try {DatagramSocket dSocket = new DatagramSocket(10086);//2.接收数据包byte[] b = new byte[1024];DatagramPacket dPacket = new DatagramPacket(b,b.length);dSocket.receive(dPacket);//3.解析数据包byte[] data = dPacket.getData();int len = dPacket.getLength();InetAddress address = dPacket.getAddress();int port = dPacket.getPort();System.out.println("接收到数据:"+new String(data,0,len));System.out.println("该数据是从:"+address+",这台电脑中的:"+port+"这个端口号发出的");//4.释放资源dSocket.close();} catch (SocketException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}

发送端:

package dh09.UDPDemo;import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;public class SendMessageDemo {public static void main(String[] args) {try {//1.创建DatagramSocket对象DatagramSocket dSocket = new DatagramSocket();//2.打包数据String string = "你好";byte[] b = string.getBytes();InetAddress address = InetAddress.getByName("127.0.0.1");int port = 10086;DatagramPacket dPacket = new DatagramPacket(b, b.length,address,port);//3.发送数据dSocket.send(dPacket);//4.释放资源dSocket.close();} catch (SocketException e) {e.printStackTrace();} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/2611.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Postman+JMeter进行简单的接口测试

以前每次学习接口测试都是百度,查看相关人员的实战经验,没有结合自己公司项目接口真正具体情况。 这里简单分享一下公司项目Web平台的一个查询接口,我会使用2种工具Postman和JMeter如何对同一个接口做调试。 准备工作 首先,登录公…

对话思必驰:语音+AIGC的时代才刚刚开始

思必驰的价值在于开创了以语音技术为基础,打开了用人机交互解决方案构建软硬件智能化的崭新篇章。具象地说,它不仅是ChatBot,更像是“Jarvis”。 数科星球原创 作者丨苑晶 编辑丨大兔 2023年已过半,人工智能已成为全社会所关注…

不可用的ES节点重启后重新加入集群

如果一个之前不可用的ES节点重启后重新加入集群,而该节点上还有旧的数据,ES会做以下几件事: ES会发现node2上有旧的数据分片会将node2上的分片标记为不可分配(unassigned)会将node2上的分片数据与其他 Master eligible 节点上的 primary/replica 数据对比如果数据不一致,ES会:…

【精致生活】打造舒适家居环境的绝佳选择-API商品详细介绍

【精致生活】打造舒适家居环境的绝佳选择-API商品详细介绍 在追求舒适家居环境的道路上,我们时常需要借助一些高质量的产品来实现。而今天,我们要介绍的这款API商品,则是您打造精致生活的不二选择。 淘宝/天猫获得淘宝商品详情 API 返回值…

使用OpenCV DNN推理YOLOv5-CLS转换后的ONNX分类模型

YOLOv5是一种先进的目标检测算法,而YOLOv5-CLS则是YOLOv5的一个变种,专门用于图像分类任务。为了在实际应用中使用YOLOv5-CLS模型,我们需要将其转换为Open Neural Network Exchange (ONNX) 格式,并使用OpenCV DNN库来进行推理。 …

基于FME二开产品:NewGIS integration介绍

目录 前言 一、模板上传 二、模板在线运行 1.模板参数解析 2.模板运行 三、成果管理 总结 前言 爆肝两个月,我和我的团队终于打造出了一款能完美适配所有FME模板的在线模板管理平台,目前支持FME2021版本的所有模板的在线运行、管理。整体技术框架…

uni-app:常见组件view、text、icon

根据html:可知div是块级标签,span是行级标签 这里view类似于div,text类似于span,即 块级标签:view 行级标签:text、icon 类似效果 两个icon图标,置于第一排 两个view,分别位于第…

matlab程序调试方法步骤

1内容 1)代码内调试; 2)断点调试方法; 3)指令调试方法; 二、断点调试方法 调试代码最经典的就是利用设置断点的方法,此处给出对应快捷键: F12:设置/取消 断点 F10&…

项目名称:无源在线词典项目

一,概述 基于C语言的网络电子词典项目,使用到了tcp协议的并发服务器设计、网络编程、文件I/O、数据库等多方面的知识。可以满足多用户同时登陆,用户登陆后可以查询单词及历史记录,具有查找快速,保密性好等优点。 开…

JAVA集成国密SM4

JAVA集成国密SM4加解密 一、pom配置二、代码集成2.1、目录结构2.2、源码2.3、测试 三、遇到的坑3.1、秘钥长度3.2、转码问题 四、相关链接 国密算法概述:https://blog.csdn.net/qq_38254635/article/details/131801527 SM4对称算法 SM4 无线局域网标准的分组数据算…

wordpress 分类名称与链接

1.分类名称与链接 <?php the_category(); ?> 2.分类页面调用当前分类名称 要在分类页得到分类页面的栏目名称,需要用 <?php single_cat_title(); ?> 3.文章页调用当前文章所属分类名称 代码1 <?phpforeach((get_the_category()) as $category){echo $c…

添加资源到android源码中-修改framework层

编译带有资源的jar包&#xff0c;需要更改frameworks层&#xff0c;方法如下&#xff1a; 一.增加png类型的图片资源 1.将appupdate模块所有用到的png格式图片拷贝到framework/base/core/res/res/drawable-mdpi里。但是要确保没有与原生的没有重名文件。 2.在framework/base…

c++内存映射文件

概念 将一个文件直接映射到进程的进程空间中&#xff08;“映射”就是建立一种对应关系,这里指硬盘上文件的位置与进程逻辑地址空间中一块相同区域之间一 一对应,这种关系纯属是逻辑上的概念&#xff0c;物理上是不存在的&#xff09;&#xff0c;这样可以通过内存指针用读写内…

qt 32位编译 内存溢出 无法 运行在win7 32位

项目在 编译32位系统 内存溢出 设置成了x64 但是 最后在xp32位系统运行提示 在下载了n个dll之后发现这种状况无穷无尽&#xff0c;后来在查阅资料时发现可以直接打开qt安装目录下的“vcredist”文件夹&#xff0c;将对应位数的程序拷到win7电脑上&#xff0c;直接运行&…

Orleans 微软基于 Actor 的分布式框架

一、Actor模型工作原理 Actor模型是一种并发编程模型&#xff0c;它基于消息传递实现&#xff0c;是一种轻量级的并发模型。在Actor模型中&#xff0c;每个Actor都是一个独立的执行单元&#xff0c;它可以接收和发送消息&#xff0c;并且可以执行一些本地操作&#xff0c;但是不…

【ARM Cortex-M 系列 1 -- Cortex-M0, M3, M4, M7, M33 差异】

文章目录 Cortex-M 系列介绍Cortex-M0/M0 介绍Cortex-M3/M4 介绍Cortex-M7 介绍Cotex-M33 介绍 下篇文章&#xff1a;ARM Cortex-M 系列 2 – CPU 之 Cortex-M7 介绍 Cortex-M 系列介绍 Cortex-M0/M0 介绍 Cortex-M0 是 ARM 公司推出的一款微控制器&#xff08;MCU&#xff0…

网络安全在2023好入行吗?

前言 023年的今天&#xff0c;慎重进入网安行业吧&#xff0c;目前来说信息安全方向的就业对于学历的容忍度比软件开发要大得多&#xff0c;还有很多高中被挖过来的大佬。 理由很简单&#xff0c;目前来说&#xff0c;信息安全的圈子人少&#xff0c;985、211院校很多都才建…

高时空分辨率、高精度一体化预测技术之风、光、水能源自动化预测技术

能源是国民经济发展和人民生活必须的重要物质基础。在过去的200多年里&#xff0c;建立在煤炭、石油、天然气等化石燃料基础上的能源体系极大的推动了人类社会的发展。但是人类在使用化石燃料的同时&#xff0c;也带来了严重的环境污染和生态系统破坏。近年来&#xff0c;世界各…

python appium UI 自动化测试框架讨论

目录 前言&#xff1a; 框架共性总结 Auto_Analysis 权限弹窗识别 前言&#xff1a; Python Appium UI自动化测试框架是一种用于测试移动应用程序的工具&#xff0c;它结合了Python编程语言和Appium测试框架的功能。 框架共性总结 1 自动找设备 连接设备 2 自动启 appium …

《数据结构》数据结构概念,顺序表,链表

目录 1. 为什么学习数据结构&#xff1f; 2. 数据结构 2.1. 数据 2.2. 逻辑结构 2.3. 存储结构 2.4. 操作 3. 算法 3.1. 算法与程序 3.2. 算法与数据结构 3.3. 算法的特性 3.4. 如何评价一个算法的好坏 4. 线性表 4.1. 顺序表 4.2. 单向链表 4.3. 单向循环链表&…