场景

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通信-客户端与服务端相互传输对象数据相关推荐

  1. Java中Socket通信-客户端向服务端发送照片

    场景 Java中Socket通信-服务端和客户端双向传输字符串实现: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1084885 ...

  2. Java中Socket实现客户端和服务端通信(多线程实现全双工通信)

    效果图 目录结构 服务端Server package server;import thread.SocketReader; import thread.SocketWrite;import java. ...

  3. php winform通信,C# Winform 通过Socket实现客户端和服务端TCP通信

    操作界面如下: 1.声明Socket 第一个参数:寻址方式,第二个参数:传输数据的方式,第三个参数:通信协议 Socket socket = new Socket(AddressFamily.Inte ...

  4. java网络编程Socket实现客户端向服务端发送信息

    (可按目录按需阅读,我一般会整理的比较细) 前置知识 java IO Socket 什么是socket?socket字面意思其实就是一个插口或者套接字,包含了源ip地址.源端口.目的ip地址和源端口. ...

  5. 基于Socket实现客户端与服务端通讯

    基于Socket实现客户端与服务端通讯 socket 概述 Socket,套接字就是两台主机之间逻辑连接的端点.TCP/IP协议是传输层协议,主要解决数据如何 在网络中传输,而HTTP是应用层协议,主 ...

  6. php socket 握手,python Socket之客户端和服务端握手详细介绍

    这篇文章主要为大家详细介绍了python Socket之客户端和服务端握手,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 简单的学习下利用socket来建立客户端和服务端之间的连接并且发送数据 1 ...

  7. 年货来咯:精选年度最受欢迎干货,覆盖客户端、服务端、前端、数据、算法……...

    ????新年将至,年味渐浓.???? ????闲鱼技术年货,如期而至.???? 从2018年春到今天,我们共发布了216篇原创技术文章,开设在公众号.掘金.知乎.头条.facebook.twitter ...

  8. java中的IO流之序列化与反序列化(对象数据和文件的读写交互)

    前言必读 读者手册(必读)_云边的快乐猫的博客-CSDN博客 一.知识点介绍 1.什么是序列化与反序列化? 对象与磁盘的交互读写. 2.为什么要学? 2.1在之前的IO流中,都是内存与磁盘进行交互的读 ...

  9. Java中Socket通信-服务端和客户端双向传输字符串实现

    场景 什么是socket 在计算机通信领域,socket 被翻译为"套接字",它是计算机之间进行通信的一种约定或一种方式.通过 socket 这种约定,一台计算机可以接收其他计算机 ...

最新文章

  1. python sqlalchemy中文手册-基于Python的SQLAlchemy的操作
  2. Android 工程报错解决 Unable to resolve target 'android-17'
  3. debian配置集锦
  4. 相对定位android,appium相对位置定位元素----父节点/兄弟节点定位
  5. python is 和 == 的区别、解码和编码 小数据池
  6. PHP opencv Dlib,Face_Recognition
  7. 劝雷军别造车?王传福:别浪费钱和时间;华为面向全球招募天才少年:不限学历/学校;腾讯光子工作室强制不加班双休|极客头条...
  8. iOS用三种途径实现一方法有多个返回值
  9. 项目建设做好服务器,我院数字化建设项目(一期)服务器系统切换工作顺利完成...
  10. 微信企业号支付个人php实现
  11. 实验板FPGA型号在哪里看_【VE】一文看懂乙烯基树脂发展史!
  12. Excel合并单元格快捷键
  13. 基于RT-Thread的环境监测装置(含IO口模拟8080时序驱动TFT屏幕)
  14. dhtml gantt所有配置_dhtmlx-gantt相关配置
  15. Mosfet管开关管损耗、导通损耗、驱动损耗-计算方法公式及解释
  16. java实现记账本功能_java基础实战项目一:实现家庭记账本的简易记账功能
  17. 微信小程序checkbox样式美化
  18. TD-SCDMA和2G互操作实现指导手册
  19. 家用路由器研究详解入门(内含仿真环境搭建)
  20. 计算机教室网络连接简图,多媒体教室连接示意图.ppt

热门文章

  1. java找哪一天是星期几_七夕节是几月几日农历时间 2019年七夕情人节哪一天星期几...
  2. tomcat server.xml文件的配置解析
  3. 无忧考吧2017二级java_二级Java模拟软件|无忧考吧二级Java语言程序设计模拟软件下载 v2017.03官方版 - 121下载站...
  4. Java开发专业通过swot分析岗位_掌起智能科技 | 你们要的安卓岗位来了,还有JAVA,技术经理等岗位...
  5. Java面试宝典系列之基础面试题-常见的几种排序算法-插入、选择、冒泡、快排、堆排等
  6. mybatis实现分页查询-自己封装分页方法
  7. 「后端小伙伴来学前端了」Vue脚手架中 render 函数
  8. 魏鹏机器人_痴迷农业科技,他发明智能分拣机器人给胡萝卜照CT
  9. dhcp request汉字乱码分析
  10. 计算机管理文件和文件夹的教案任务设置,信息教学设计:文件和文件夹的基本操作...