JAVA SOCKET 序列化反序列化


以下是客戶端序列化后將對象發送給服務端

public ResponseBean r(int b)  {
		
		try {
			Socket socket = new Socket(Config.ServerIP,Config.ServerPort);
			
			RequestBean rb = new RequestBean();
			rb.password = this.password;
			rb.ctrl = b;
			OutputStream outputStream = socket.getOutputStream();
			ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream);
			
			objectOutputStream.writeObject(rb);
			objectOutputStream.flush();
			objectOutputStream.close();
			//socket.close();
		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}

  以下是服務端接收到序列化之后進行反序列化

 1 public void r(Socket s){    //進行管理的函數
 2         try {
 3             InputStream inputStream = s.getInputStream();
 4 
 5 
 6             ObjectInputStream objectInputStream = new ObjectInputStream(inputStream);
 7             try {
 8                 RequestBean rb =(RequestBean) objectInputStream.readObject();
 9                 System.out.println(rb.password);
10             } catch (ClassNotFoundException e) {
11                 // TODO Auto-generated catch block
12                 System.out.println("err 收到客戶端的請求不能發序列化到RequestBean");
13                 //e.printStackTrace();
14             }
15             
16             
17             
18         } catch (IOException e) {
19             // TODO Auto-generated catch block
20             e.printStackTrace();
21         }
22     }

以下是序列化對象記得要實現Serializable接口,不然會出現unknown source這樣的錯誤

package cn.fucihua.Model.Bean;

import java.io.Serializable;

public class RequestBean implements Serializable{ //序列化之后傳給代理池服務的對象
    public String password = "";
    public int ctrl = 0;
        /*
         *  1     開啟服務
         *  2    關閉服務
         *  3    重啟服務
         *  0    查詢狀態
         * */
}        

服務端客戶端的類包名記得要一致


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM