最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中使用Socket發(fā)送Java對象實例

 更新時間:2015年05月20日 09:38:33   投稿:junjie  
這篇文章主要介紹了Java中使用Socket發(fā)送Java對象實例,本文使用對象流直接發(fā)送對象,本文同時給出代碼實例,需要的朋友可以參考下

以前寫聊天程序都是用字符串加個標志就直接發(fā)送到服務器,然后轉發(fā)了。
現在要求我用對象流直接發(fā)送對象,測試了一下,記錄一下。
其實我更傾向用json發(fā)送對象的,json說白了也是字符串,等有空了好好研究研究。
主要功能:客戶端給服務器發(fā)送個對象,服務器接收到了打印出來。反過來是差不多了,就不寫了。

上面是整體架構。
User類就兩個屬性。

復制代碼 代碼如下:

package com.qiantu.bean;

import java.io.Serializable;

public class User implements Serializable {
 private static final long serialVersionUID = 1L;
 private String name;
 private String 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;
 }
}

服務器端:接收客戶端發(fā)送過來的user對象:

復制代碼 代碼如下:

package test;

import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;

import com.qiantu.bean.User;

public class TestServer {
 public void start() {
  try {
   ServerSocket ss = new ServerSocket(7777);
   System.out.println("start to accept...");
   Socket socket = ss.accept();
   
   //建立輸入流
   ObjectInputStream ois = new ObjectInputStream(
              new BufferedInputStream(socket.getInputStream())); 
            Object obj = ois.readObject(); 
            if (obj != null) { 
                User user = (User)obj;//把接收到的對象轉化為user
                System.out.println("user: " + user.getName()); 
                System.out.println("password: " + user.getPassword());
            } 
            ois.close();
            socket.close();
            ss.close();
  } catch (IOException e) {
   e.printStackTrace();
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  }
 }
 
 public static void main(String[] args) {
  new TestServer().start();
 }
}

客戶端:給服務器端發(fā)送user對象:

復制代碼 代碼如下:

package client;

import java.io.IOException;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

import com.qiantu.bean.User;

public class TestClient {
 public static void main(String[] args) {
  new TestClient().start();
 }

 public void start() {
  try {
   Socket socket = new Socket("127.0.0.1", 7777);
   //建立輸入流
   ObjectOutputStream oos = new ObjectOutputStream(socket
     .getOutputStream());
   User user = new User();
   user.setName("梁國俏");
   user.setPassword("123456");
   //輸入對象, 一定要flush()
   oos.writeObject(user);
   oos.flush();
   
   oos.close();
   socket.close();
  } catch (UnknownHostException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}


運行結果:

要注意的地方:
《1》實體類要實現Serializable類,添加標識serialVersionUID。
《2》發(fā)送對象之后要flush();
《3》這個比較重要,搞了我半天不知道哪里出錯,言來是這個。
服務器端和客戶端兩邊的實體類要一模一樣,類名一樣,包名也要一樣。我就是因為包名不一樣搞了很久。。。。

相關文章

  • 詳解java 中泛型中的類型擦除和橋方法

    詳解java 中泛型中的類型擦除和橋方法

    這篇文章主要介紹了詳解java 中泛型中的類型擦除和橋方法的相關資料,需要的朋友可以參考下
    2017-06-06
  • 使用maven-assembly-plugin如何打包多模塊項目

    使用maven-assembly-plugin如何打包多模塊項目

    這篇文章主要介紹了使用maven-assembly-plugin如何打包多模塊項目,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java實現簡單推箱子游戲

    Java實現簡單推箱子游戲

    這篇文章主要為大家詳細介紹了Java實現推箱子游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • mybatis初始化SqlSessionFactory失敗的幾個原因分析

    mybatis初始化SqlSessionFactory失敗的幾個原因分析

    這篇文章主要介紹了mybatis初始化SqlSessionFactory失敗的幾個原因分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java實現矩形碰撞檢測

    Java實現矩形碰撞檢測

    這篇文章主要為大家詳細介紹了Java實現矩形碰撞檢測,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Java CompletableFuture如何實現超時功能

    Java CompletableFuture如何實現超時功能

    這篇文章主要為大家介紹了實現超時功能的基本思路以及CompletableFuture(之后簡稱CF)是如何通過代碼實現超時功能的,需要的小伙伴可以了解下
    2025-01-01
  • Java與Oracle實現事務(JDBC事務)實例詳解

    Java與Oracle實現事務(JDBC事務)實例詳解

    這篇文章主要介紹了Java與Oracle實現事務(JDBC事務)實例詳解的相關資料,需要的朋友可以參考下
    2017-05-05
  • 值得Java程序猿閱讀的書籍

    值得Java程序猿閱讀的書籍

    這篇文章主要推薦了一些值得Java程序猿閱讀的書籍,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Spring Boot中的 6 種API請求參數讀取方式示例詳解

    Spring Boot中的 6 種API請求參數讀取方式示例詳解

    使用Spring Boot開發(fā)API的時候,讀取請求參數是服務端編碼中最基本的一項操作,Spring Boot中也提供了多種機制來滿足不同的API設計要求,這篇文章主要介紹了Spring Boot中的 6 種API請求參數讀取方式示例詳解,需要的朋友可以參考下
    2024-05-05
  • Java 數據流之Broadcast State

    Java 數據流之Broadcast State

    這篇文章主要介紹了Java 數據流之Broadcast State,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09

最新評論

望谟县| 镇原县| 枣阳市| 门头沟区| 肇庆市| 灵山县| 林芝县| 区。| 高碑店市| 南平市| 尚志市| 贵德县| 霍林郭勒市| 弋阳县| 拜泉县| 永济市| 溆浦县| 忻州市| 本溪| 贡觉县| 巴林左旗| 乡城县| 微博| 通河县| 漳浦县| 桦川县| 呼和浩特市| 清水县| 上栗县| 浦县| 岳普湖县| 永定县| 富阳市| 辉县市| 绥滨县| 东兰县| 梁山县| 新干县| 卢龙县| 施甸县| 禹城市|