Java Socket怎么传输对象
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章给大家介绍Java Socket怎么传输对象,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。前面两篇文章介绍了怎样建立Java Socket通信,这一篇说一下怎样使用Jav
千家信息网最后更新 2026年11月04日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怎么传输对象就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
对象
传输
代码
内容
更多
篇文章
帮助
运行
不错
普通
兴趣
实例
小伙
小伙伴
就是
序列
必不可少
接口
控制台
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
涨乐互联网科技
互联网与新科技
致骋互联网科技
互联网科技博客
佩信高科技互联网
云创客互联网科技公司
恒银科技与互联网金融
互联网科技实习生岗位职责
央行互联网金融科技公司
互联网为啥属于高科技
港股科技和互联网
乌鲁木齐新华智原互联网科技学校
佛山市拉法互联网科技有限公司
山东有哪些互联网科技公司
互联网金融科技公司的优势
广州千川互联网科技有限公司
湖北辰鑫科技互联网
中国互联网公司的科技投入
互联网科技对化妆品行业
宁波允成互联网科技有限公司
天津市摩尔互联网科技
互联网品科技
融势互联网科技
丰台科技园 互联网公司
中正互联网科技招聘
隆华科技工业互联网
互联网科技教育视频
互联网科技资金流入
互联网科技年终奖
容联科技互联网电商