iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java Socket怎么传输对象
  • 460
分享到

Java Socket怎么传输对象

2023-06-17 11:06:52 460人浏览 独家记忆
摘要

这篇文章给大家介绍Java Socket怎么传输对象,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。前面两篇文章介绍了怎样建立Java Socket通信,这一篇说一下怎样使用Java Socket来传输对象。首先需要一个

这篇文章给大家介绍Java Socket怎么传输对象,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

前面两篇文章介绍了怎样建立Java Socket通信,这一篇说一下怎样使用Java Socket来传输对象。

首先需要一个普通的对象类,由于需要序列化这个对象以便在网络上传输,所以实现java.io.Serializable接口就是必不可少的了,如下:

package com.Googlecode.garbagecan.test.socket.sample3;   public class User implements java.io.Serializable {      private static final long serialVersionUID = 1L;      private String name;      private String passWord;       public User() {                }            public User(String name, String password) {          this.name = name;          this.password = password;      }            public String getName() {          return name;      }       public void setName(String name) {          this.name = name;      }       public String getPassword() {          return password;      }       public void setPassword(String password) {          this.password = password;      }  }

对于Server端的代码,代码中分别使用了ObjectInputStream和ObjectOutputStream来接收和发送socket中的InputStream和OutputStream,然后转换成Java对象,如下:

package com.googlecode.garbagecan.test.socket.sample3;   import java.io.*;  import java.net.ServerSocket;  import java.net.Socket;  import java.util.logging.Level;  import java.util.logging.Logger;   public class MyServer {       private final static Logger logger = Logger.getLogger(MyServer.class.getName());            public static void main(String[] args) throws IOException {          ServerSocket server = new ServerSocket(10000);           while (true) {              Socket socket = server.accept();              invoke(socket);          }      }       private static void invoke(final Socket socket) throws IOException {          new Thread(new Runnable() {              public void run() {                  ObjectInputStream is = null;                  ObjectOutputStream os = null;                  try {                      is = new ObjectInputStream(new BufferedInputStream(socket.getInputStream()));                      os = new ObjectOutputStream(socket.getOutputStream());                       Object obj = is.readObject();                      User user = (User)obj;                      System.out.println("user: " + user.getName() + "/" + user.getPassword());                       user.setName(user.getName() + "_new");                      user.setPassword(user.getPassword() + "_new");                       os.writeObject(user);                      os.flush();                  } catch (IOException ex) {                      logger.log(Level.SEVERE, null, ex);                  } catch(ClassNotFoundException ex) {                      logger.log(Level.SEVERE, null, ex);                  } finally {                      try {                          is.close();                      } catch(Exception ex) {}                      try {                          os.close();                      } catch(Exception ex) {}                      try {                          socket.close();                      } catch(Exception ex) {}                  }              }          }).start();      }  }

Client也和Server端类似,同样使用ObjectOutputStream和ObjectInputStream来处理,如下:

package com.googlecode.garbagecan.test.socket.sample3;   import java.io.BufferedInputStream;  import java.io.IOException;  import java.io.ObjectInputStream;  import java.io.ObjectOutputStream;  import java.net.Socket;  import java.util.logging.Level;  import java.util.logging.Logger;   public class MyClient {            private final static Logger logger = Logger.getLogger(MyClient.class.getName());            public static void main(String[] args) throws Exception {          for (int i = 0; i < 100; i++) {              Socket socket = null;              ObjectOutputStream os = null;              ObjectInputStream is = null;                            try {                  socket = new Socket("localhost", 10000);                        os = new ObjectOutputStream(socket.getOutputStream());                  User user = new User("user_" + i, "password_" + i);                  os.writeObject(user);                  os.flush();                                    is = new ObjectInputStream(new BufferedInputStream(socket.getInputStream()));                  Object obj = is.readObject();                  if (obj != null) {                      user = (User)obj;                      System.out.println("user: " + user.getName() + "/" + user.getPassword());                  }              } catch(IOException ex) {                  logger.log(Level.SEVERE, null, ex);              } finally {                  try {                      is.close();                  } catch(Exception ex) {}                  try {                      os.close();                  } catch(Exception ex) {}                  try {                      socket.close();                  } catch(Exception ex) {}              }          }      }  }

测试上面的代码,首先运行Server类,然后运行Client类,就可以分别在Server端和Client端控制台看到接收到的User对象实例了。

关于Java Socket怎么传输对象就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: Java Socket怎么传输对象

本文链接: https://www.lsjlt.com/news/288562.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java Socket怎么传输对象
    这篇文章给大家介绍Java Socket怎么传输对象,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。前面两篇文章介绍了怎样建立Java Socket通信,这一篇说一下怎样使用Java Socket来传输对象。首先需要一个...
    99+
    2023-06-17
  • Java Socket中怎样传输压缩对象
    这篇文章将为大家详细讲解有关Java Socket中怎样传输压缩对象,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。上一篇文章说到了用Java Socket来传输对象,但是在有些情况下比如网络...
    99+
    2023-06-17
  • Java Socket实现的传输对象功能示例
    本文实例讲述了Java Socket实现的传输对象功能。分享给大家供大家参考,具体如下:前面两篇文章介绍了怎样建立Java Socket通信,这里说一下怎样使用Java Socket来传输对象。首先需要一个普通的对象类,由于需要序列化这个对...
    99+
    2023-05-31
    java socket 传输对象
  • Java Socket如何使用加密协议传输对象
    本篇文章为大家展示了Java Socket如何使用加密协议传输对象,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前面几篇博文提到了Socket中一些常用的用法,但是对于一些有安全要求的应用就需要加密...
    99+
    2023-06-17
  • Java Socket实现传输压缩对象的方法示例
    本文实例讲述了Java Socket实现传输压缩对象的方法。分享给大家供大家参考,具体如下:前面文章《Java Socket实现的传输对象功能示例》说到了用Java Socket来传输对象,但是在有些情况下比如网络环境不好或者对象比较大的情...
    99+
    2023-05-31
    java socket ava
  • Java Socket使用加密协议进行传输对象的方法
    本文实例讲述了Java Socket使用加密协议进行传输对象的方法。分享给大家供大家参考,具体如下:前面的几篇文章介绍了Socket中一些常见的用法,但是对于一些有安全要求的应用就需要加密传输的数据,此时就需要用到SSLSocket了。还是...
    99+
    2023-05-31
    java socket ava
  • Java 中怎么利用Socket传输数据
    Java 中怎么利用Socket传输数据,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。我们将这个对象串行化至文件系统,然后将之还原,Java Socket传输数...
    99+
    2023-06-17
  • 怎么使用java socket传输大文件
    要使用Java Socket传输大文件,可以使用以下步骤:1. 创建一个ServerSocket对象来监听某个端口号,等待客户端连接...
    99+
    2023-09-23
    java
  • Apache CXF中如何传输Java对象
    这篇文章将为大家详细讲解有关Apache CXF中如何传输Java对象,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。怎样通过CXF来构建最基本的Web Service,并且其中暴露的接口参数...
    99+
    2023-06-17
  • Java聊天室之使用Socket实现传递对象
    目录一、题目描述二、解题思路三、代码详解一、题目描述 题目实现:使用网络编程时,需要通过Socket传递对象。 二、解题思路 创建一个类:Student,实现序列化 ​ Studen...
    99+
    2022-11-13
    Java实现聊天室 Java聊天室 Java Socket传递对象
  • Java 中怎么利用Socket实现网络传输
    今天就跟大家聊聊有关Java 中怎么利用Socket实现网络传输,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。采用Java Socket网络传输的序列化机制,将对象“压扁”成二进制字...
    99+
    2023-06-17
  • Apache MINA中怎么进行对象传输
    Apache MINA中怎么进行对象传输,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。利用Apache MINA来传递对象,这对了MINA来说非常容易,并且这也是Java网络编...
    99+
    2023-06-17
  • 如何在java中使用socket对zip文件进行传输
    今天就跟大家聊聊有关如何在java中使用socket对zip文件进行传输,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。服务器端程序:import java.io.*;import j...
    99+
    2023-05-31
    java socket zip文件
  • Java Socket传输怎么完成自己的网络任务
    这篇文章主要讲解了“Java Socket传输怎么完成自己的网络任务”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java Socket传输怎么完成自己的网络任务”吧!Java Socket...
    99+
    2023-06-17
  • 怎么在Android中实现Socket通信传输
    今天就跟大家聊聊有关怎么在Android中实现Socket通信传输,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Socket本质上就是Java封装了传输层上的TCP协议(注:UDP用...
    99+
    2023-05-30
    android socket
  • 详解Android使用Socket对大文件进行加密传输
    前言数据加密,是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。它的核心是密码学。数据加密目前仍是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现...
    99+
    2023-05-31
    android 文件加密 对大
  • Java中的VO和DTO:数据传输对象的优雅设计
    在Java开发中,VO(Value Object)和DTO(Data Transfer Object)是两种常见的数据传输对象。它们在不同场景中扮演着重要的角色,帮助我们优雅地设计和管理数据传输。...
    99+
    2023-10-24
    java php 数据库
  • Java使用Socket通信传输文件的方法示例
    本文实例讲述了Java使用Socket通信传输文件的方法。分享给大家供大家参考,具体如下:前面几篇文章介绍了使用Java的Socket编程和NIO包在Socket中的应用,这篇文章说说怎样利用Socket编程来实现简单的文件传输。这里由于前...
    99+
    2023-05-31
    java socket ava
  • arraylist怎么输出所有对象
    要输出ArrayList中的所有对象,可以使用for循环遍历ArrayList,并使用get()方法获取每个对象,然后进行输出。以下...
    99+
    2023-10-08
    arraylist
  • java输出document对象的方法是什么
    在Java中,输出一个Document对象,可以使用以下方法:1. 使用DOM方式输出:可以使用Transformer类将Docum...
    99+
    2023-10-11
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作