日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java Socket实战之三:传输对象

發布時間:2025/4/16 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java Socket实战之三:传输对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:https://i.cnblogs.com/EditPosts.aspx?opt=1

前面兩篇文章介紹了怎樣建立Java Socket通信,這一篇說一下怎樣使用Java Socket來傳輸對象。

首先需要一個普通的對象類,由于需要序列化這個對象以便在網絡上傳輸,所以實現java.io.Serializable接口就是必不可少的了,如下:

1 package com.googlecode.garbagecan.test.socket.sample3; 2 3 public class User implements java.io.Serializable { 4 private static final long serialVersionUID = 1L; 5 private String name; 6 private String password; 7 8 public User() { 9 10 } 11 12 public User(String name, String password) { 13 this.name = name; 14 this.password = password; 15 } 16 17 public String getName() { 18 return name; 19 } 20 21 public void setName(String name) { 22 this.name = name; 23 } 24 25 public String getPassword() { 26 return password; 27 } 28 29 public void setPassword(String password) { 30 this.password = password; 31 } 32 }

對于Server端的代碼,代碼中分別使用了ObjectInputStream和ObjectOutputStream來接收和發送socket中的InputStream和OutputStream,然后轉換成Java對象,如下:

1 package com.googlecode.garbagecan.test.socket.sample3; 2 3 import java.io.*; 4 import java.net.ServerSocket; 5 import java.net.Socket; 6 import java.util.logging.Level; 7 import java.util.logging.Logger; 8 9 public class MyServer { 10 11 private final static Logger logger = Logger.getLogger(MyServer.class.getName()); 12 13 public static void main(String[] args) throws IOException { 14 ServerSocket server = new ServerSocket(10000); 15 16 while (true) { 17 Socket socket = server.accept(); 18 invoke(socket); 19 } 20 } 21 22 private static void invoke(final Socket socket) throws IOException { 23 new Thread(new Runnable() { 24 public void run() { 25 ObjectInputStream is = null; 26 ObjectOutputStream os = null; 27 try { 28 is = new ObjectInputStream(new BufferedInputStream(socket.getInputStream())); 29 os = new ObjectOutputStream(socket.getOutputStream()); 30 31 Object obj = is.readObject(); 32 User user = (User)obj; 33 System.out.println("user: " + user.getName() + "/" + user.getPassword()); 34 35 user.setName(user.getName() + "_new"); 36 user.setPassword(user.getPassword() + "_new"); 37 38 os.writeObject(user); 39 os.flush(); 40 } catch (IOException ex) { 41 logger.log(Level.SEVERE, null, ex); 42 } catch(ClassNotFoundException ex) { 43 logger.log(Level.SEVERE, null, ex); 44 } finally { 45 try { 46 is.close(); 47 } catch(Exception ex) {} 48 try { 49 os.close(); 50 } catch(Exception ex) {} 51 try { 52 socket.close(); 53 } catch(Exception ex) {} 54 } 55 } 56 }).start(); 57 } 58 }

Client也和Server端類似,同樣使用ObjectOutputStream和ObjectInputStream來處理,如下:

1 package com.googlecode.garbagecan.test.socket.sample3; 2 3 import java.io.BufferedInputStream; 4 import java.io.IOException; 5 import java.io.ObjectInputStream; 6 import java.io.ObjectOutputStream; 7 import java.net.Socket; 8 import java.util.logging.Level; 9 import java.util.logging.Logger; 10 11 public class MyClient { 12 13 private final static Logger logger = Logger.getLogger(MyClient.class.getName()); 14 15 public static void main(String[] args) throws Exception { 16 for (int i = 0; i < 100; i++) { 17 Socket socket = null; 18 ObjectOutputStream os = null; 19 ObjectInputStream is = null; 20 21 try { 22 socket = new Socket("localhost", 10000); 23 24 os = new ObjectOutputStream(socket.getOutputStream()); 25 User user = new User("user_" + i, "password_" + i); 26 os.writeObject(user); 27 os.flush(); 28 29 is = new ObjectInputStream(new BufferedInputStream(socket.getInputStream())); 30 Object obj = is.readObject(); 31 if (obj != null) { 32 user = (User)obj; 33 System.out.println("user: " + user.getName() + "/" + user.getPassword()); 34 } 35 } catch(IOException ex) { 36 logger.log(Level.SEVERE, null, ex); 37 } finally { 38 try { 39 is.close(); 40 } catch(Exception ex) {} 41 try { 42 os.close(); 43 } catch(Exception ex) {} 44 try { 45 socket.close(); 46 } catch(Exception ex) {} 47 } 48 } 49 } 50 }

最后測試上面的代碼,首先運行Server類,然后運行Client類,就可以分別在Server端和Client端控制臺看到接收到的User對象實例了。

?

轉載于:https://www.cnblogs.com/sharpest/p/10055463.html

總結

以上是生活随笔為你收集整理的Java Socket实战之三:传输对象的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品无码电影 | www日本高清视频 | 夜夜躁狠狠躁日日躁av | 成年人午夜影院 | 男人av在线 | 男同av在线观看一区二区三区 | 日本在线中文字幕专区 | 欧美大片www| 双性人hdsexvideos | 婷婷激情小说网 | 无毒黄色网址 | 三上悠亚 在线观看 | www视频免费在线观看 | 国产视频一二区 | 真实偷拍激情啪啪对白 | 欧美精品一区二区不卡 | 激情文学综合网 | 午夜精品导航 | 日韩欧美在线一区二区 | 爱情岛av永久入口 | 少妇裸体淫交视频免费看高清 | 高潮网址 | 成人精品一区二区三区电影 | 国产无码日韩精品 | 亚洲成人中文 | 伊人久久香 | av成人精品| 国产视频一区二区在线 | 久久人人爽人人 | 国产噜噜噜噜久久久久久久久 | 国产色视频网站 | 亚洲午夜毛片 | 亚洲天堂成人在线 | 视色在线 | 丁香九月婷婷 | 亚洲成人免费看 | 一道本av在线 | 一区二区播放 | 欧洲天堂网 | 欧美日韩一区二区三区四区五区 | 欧美激情精品久久久久久变态 | 久久国产精品视频 | 国产在线观看免费播放 | 精品国产乱码久久久久久郑州公司 | 国产不卡精品视频 | 久久久久久免费观看 | 免费黄色91| 夜色成人网 | 浮妇高潮喷白浆视频 | 波多野结衣一二三四区 | 亚洲综合自拍 | 国产婷婷久久 | 免费h片网站 | 中文字幕乱码无码人妻系列蜜桃 | 国产欧美日韩精品一区 | 精品视频区 | 丰满少妇在线观看bd | 17c国产精品一区二区 | 深夜激情网 | 日本精品入口免费视频 | 日韩不卡的av | 四虎国产精品永久在线国在线 | 久久久久久久久久一级 | 日韩精品亚洲一区 | 美女扒开尿口让男人桶 | 久久久久久久久久久久久久 | 免费一级片视频 | av黄色天堂 | 青青操91 | 久久精品国产亚洲AV高清综合 | 性感美女在线观看 | 伊人涩涩 | 欧美日韩免费在线视频 | 日韩免费观看一区二区三区 | xxxxhd欧美 | 精品处破女学生 | 影音先锋精品 | 日韩在线视频免费 | 中文字幕一区二区人妻电影丶 | 欧美成人精品欧美一级 | av最新版天堂资源在线 | 精精国产 | 黄色大片免费观看 | 久久a级片| 亚洲人xxx | 欧美精品入口蜜桃 | av在线收看| 九九热在线精品视频 | 亚洲中文无码久久 | 久久久久国色av免费观看性色 | 怡春院在线视频 | 日本高清有码 | 成人久久国产 | 国产精品久久久久久久蜜臀 | 三上悠亚在线一区 | 午夜视频导航 | 久久久久久国产精品免费免费 | 色老头一区二区 | 亚洲 欧美 日韩 综合 |