Java中Socket通信-客户端与服务端相互传输对象数据
场景
Java中Socket通信-服务端和客户端双向传输字符串实现:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108488556
在上面实现服务端与客户端双向的通信传输字符串之后,客户端与服务端怎样相互传输对象数据。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
在服务端的Java项目中新建UserInfo对象
package com.badao;import java.io.Serializable;public class UserInfo implements Serializable {private long id;private String username;private String password;public UserInfo() {}public UserInfo(long id, String username, String password) {this.id = id;this.username = username;this.password = password;}public long getId() {return id;}public void setId(long id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}
}
然后在main方法的下面新建交换对象的方法
//服务端与客户端交换对象数据public static void exchangeObject() throws IOException, ClassNotFoundException {ServerSocket serverSocket = new ServerSocket(8088);Socket socket = serverSocket.accept();InputStream inputStream = socket.getInputStream();OutputStream outputStream = socket.getOutputStream();ObjectInputStream objectInputStream = new ObjectInputStream(inputStream);ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream);for(int i=0;i<5;i++){UserInfo userInfo = (UserInfo) objectInputStream.readObject();System.out.println("在服务端打印" + (i + 1) + ":" + userInfo.getId() + " " + userInfo.getUsername() + " " + userInfo.getPassword());UserInfo newUserInfo = new UserInfo();newUserInfo.setId(i+1);newUserInfo.setUsername("公众号:霸道的程序猿"+(i+1));newUserInfo.setPassword("密码"+(i+1));objectOutputStream.writeObject(newUserInfo);}objectOutputStream.close();objectInputStream.close();outputStream.close();inputStream.close();socket.close();serverSocket.close();}
然后在main方法中调用该方法。
再来到客户端的java项目,同样新建一个UserInfo类,同上面一样。
然后在main方法下新建一个同服务端交换数据的方法
//服务端与客户端交换对象数据public static void exchangeObject() throws IOException, ClassNotFoundException {Socket socket = new Socket("localhost",8088);InputStream inputStream = socket.getInputStream();OutputStream outputStream = socket.getOutputStream();ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream);ObjectInputStream objectInputStream = new ObjectInputStream(inputStream);for(int i=0;i<5;i++){UserInfo newUserInfo = new UserInfo();newUserInfo.setId(i+1);newUserInfo.setUsername("公众号:霸道的程序猿"+(i+1));newUserInfo.setPassword("密码"+(i+1));objectOutputStream.writeObject(newUserInfo);UserInfo userInfo = (UserInfo) objectInputStream.readObject();System.out.println("在客户端打印" + (i + 1) + ":" + userInfo.getId() + " " + userInfo.getUsername() + " " + userInfo.getPassword());}objectOutputStream.close();objectInputStream.close();outputStream.close();inputStream.close();socket.close();}
然后在main方法中调用该方法。
然后依次运行服务端的main方法和客户端的main方法
需要注意
服务端先获得ObjectlnputStream对象,客户端就要先获得ObjectOutputStream对象;
服务端先获得ObjectOutputStream对象,客户端就要先获得ObjectInputStream对象。
Java中Socket通信-客户端与服务端相互传输对象数据相关推荐
- Java中Socket通信-客户端向服务端发送照片
场景 Java中Socket通信-服务端和客户端双向传输字符串实现: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1084885 ...
- Java中Socket实现客户端和服务端通信(多线程实现全双工通信)
效果图 目录结构 服务端Server package server;import thread.SocketReader; import thread.SocketWrite;import java. ...
- php winform通信,C# Winform 通过Socket实现客户端和服务端TCP通信
操作界面如下: 1.声明Socket 第一个参数:寻址方式,第二个参数:传输数据的方式,第三个参数:通信协议 Socket socket = new Socket(AddressFamily.Inte ...
- java网络编程Socket实现客户端向服务端发送信息
(可按目录按需阅读,我一般会整理的比较细) 前置知识 java IO Socket 什么是socket?socket字面意思其实就是一个插口或者套接字,包含了源ip地址.源端口.目的ip地址和源端口. ...
- 基于Socket实现客户端与服务端通讯
基于Socket实现客户端与服务端通讯 socket 概述 Socket,套接字就是两台主机之间逻辑连接的端点.TCP/IP协议是传输层协议,主要解决数据如何 在网络中传输,而HTTP是应用层协议,主 ...
- php socket 握手,python Socket之客户端和服务端握手详细介绍
这篇文章主要为大家详细介绍了python Socket之客户端和服务端握手,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 简单的学习下利用socket来建立客户端和服务端之间的连接并且发送数据 1 ...
- 年货来咯:精选年度最受欢迎干货,覆盖客户端、服务端、前端、数据、算法……...
????新年将至,年味渐浓.???? ????闲鱼技术年货,如期而至.???? 从2018年春到今天,我们共发布了216篇原创技术文章,开设在公众号.掘金.知乎.头条.facebook.twitter ...
- java中的IO流之序列化与反序列化(对象数据和文件的读写交互)
前言必读 读者手册(必读)_云边的快乐猫的博客-CSDN博客 一.知识点介绍 1.什么是序列化与反序列化? 对象与磁盘的交互读写. 2.为什么要学? 2.1在之前的IO流中,都是内存与磁盘进行交互的读 ...
- Java中Socket通信-服务端和客户端双向传输字符串实现
场景 什么是socket 在计算机通信领域,socket 被翻译为"套接字",它是计算机之间进行通信的一种约定或一种方式.通过 socket 这种约定,一台计算机可以接收其他计算机 ...
最新文章
- python sqlalchemy中文手册-基于Python的SQLAlchemy的操作
- Android 工程报错解决 Unable to resolve target 'android-17'
- debian配置集锦
- 相对定位android,appium相对位置定位元素----父节点/兄弟节点定位
- python is 和 == 的区别、解码和编码 小数据池
- PHP opencv Dlib,Face_Recognition
- 劝雷军别造车?王传福:别浪费钱和时间;华为面向全球招募天才少年:不限学历/学校;腾讯光子工作室强制不加班双休|极客头条...
- iOS用三种途径实现一方法有多个返回值
- 项目建设做好服务器,我院数字化建设项目(一期)服务器系统切换工作顺利完成...
- 微信企业号支付个人php实现
- 实验板FPGA型号在哪里看_【VE】一文看懂乙烯基树脂发展史!
- Excel合并单元格快捷键
- 基于RT-Thread的环境监测装置(含IO口模拟8080时序驱动TFT屏幕)
- dhtml gantt所有配置_dhtmlx-gantt相关配置
- Mosfet管开关管损耗、导通损耗、驱动损耗-计算方法公式及解释
- java实现记账本功能_java基础实战项目一:实现家庭记账本的简易记账功能
- 微信小程序checkbox样式美化
- TD-SCDMA和2G互操作实现指导手册
- 家用路由器研究详解入门(内含仿真环境搭建)
- 计算机教室网络连接简图,多媒体教室连接示意图.ppt
热门文章
- java找哪一天是星期几_七夕节是几月几日农历时间 2019年七夕情人节哪一天星期几...
- tomcat server.xml文件的配置解析
- 无忧考吧2017二级java_二级Java模拟软件|无忧考吧二级Java语言程序设计模拟软件下载 v2017.03官方版 - 121下载站...
- Java开发专业通过swot分析岗位_掌起智能科技 | 你们要的安卓岗位来了,还有JAVA,技术经理等岗位...
- Java面试宝典系列之基础面试题-常见的几种排序算法-插入、选择、冒泡、快排、堆排等
- mybatis实现分页查询-自己封装分页方法
- 「后端小伙伴来学前端了」Vue脚手架中 render 函数
- 魏鹏机器人_痴迷农业科技,他发明智能分拣机器人给胡萝卜照CT
- dhcp request汉字乱码分析
- 计算机管理文件和文件夹的教案任务设置,信息教学设计:文件和文件夹的基本操作...