通過socket傳遞java對象(對象序列化)

這篇文章主要實現的是j:通過socket傳遞Java對象。采用的方法就是對象序列化。方法是:通過socket建立c/s連接;通過ObjectOutputStream,ObjectOutputStream 讀寫對象。唯一需要留意的是傳遞的java 對象需要實現Serializable標記接口。代碼包括:java對象類,Employee; socket client類;server類。主要代碼如下:

java對象類:

import java.io.*;

import java.util.*;

public class Employee implements Serializable {

private int employeeNumber;

private String employeeName;

Employee(int num, String name) {

employeeNumber = num;

employeeName= name;

}

public int getEmployeeNumber() {

return employeeNumber ;

}

public void setEmployeeNumber(int num) {

employeeNumber = num;

}

public String getEmployeeName() {

return employeeName ;

}

public void setEmployeeName(String name) {

employeeName = name;

}

}

client類:

import java.io.*;import java.net.*;public class Client { public static void main(String[] arg) { try { Employee joe = new Employee(150, "Joe"); System.out.println("employeeNumber= " + joe .getEmployeeNumber()); System.out.println("employeeName= " + joe .getEmployeeName()); Socket socketConnection = new Socket("127.0.0.1", 11111); ObjectOutputStream clientOutputStream = new ObjectOutputStream(socketConnection.getOutputStream()); ObjectInputStream clientInputStream = new ObjectInputStream(socketConnection.getInputStream()); clientOutputStream.writeObject(joe); joe= (Employee)clientInputStream.readObject(); System.out.println("employeeNumber= " + joe .getEmployeeNumber()); System.out.println("employeeName= " + joe .getEmployeeName()); clientOutputStream.close(); clientInputStream.close(); } catch (Exception e) {System.out.println(e); } }}

Server類:

import java.io.*;

import java.net.*;

public class Server {

public static void main(String[] arg) {

Employee employee = null;

try {

ServerSocket socketConnection = new ServerSocket(11111);

System.out.println("Server Waiting");

Socket pipe = socketConnection.accept();

ObjectInputStream serverInputStream = new

ObjectInputStream(pipe.getInputStream());

ObjectOutputStream serverOutputStream = new

ObjectOutputStream(pipe.getOutputStream());

employee = (Employee )serverInputStream.readObject();

employee .setEmployeeNumber(256);

employee .setEmployeeName("John");

serverOutputStream.writeObject(employee);

serverInputStream.close();

serverOutputStream.close();

} catch(Exception e) {System.out.println(e);

}

}

}

 
通過socket連接傳遞java對象(對象序列化)
這篇文章主要實現的是j:通過socket傳遞Java對象。采用的方法就是對象序列化。方法是:通過socket建立c/s連接;通過ObjectOutputStream,ObjectOutputStream 讀寫對象。唯一需要留意的是傳遞的java 對象需要實現Seri...查看完整版>>通過socket連接傳遞java對象(對象序列化)
 
COMDCOM對象中通過Variant傳遞數組
因爲COM/DCOM對象都不在Client程序運行的內存空間(內進程COM對象除外,即便如此,爲了統一接口,內進程的COM也不得傳遞指針),而且在Win32中所有的程序都有自己獨立的2GB的內存空間,程序與程序之間傳遞指針(內存地址)...查看完整版>>COMDCOM對象中通過Variant傳遞數組
 
【JSF心得】JAVA的對象傳遞是引用傳遞
基于jsf-component的portlet的構建通常需要了解一下幾點1. 所有的jsf-component都是單一實例的,也就是說在每一個session周期內,一個UI組件只存在一個實例2 對于UI組件中的變量,對于不屬于UI組件的對象(FTPClient...查看完整版>>【JSF心得】JAVA的對象傳遞是引用傳遞
 
COMDCOM對象中通過Variant傳遞數組
摘要:COMDCOM對象中通過Variant傳遞數組 因爲COM/DCOM對象都不在Client程序運行的內存空間(內進程COM對象除外,即便如此,爲了統一接口,內進程的COM也不得傳遞指針),而且在Win32中所有的程序都有自己獨立的2GB的...查看完整版>>COMDCOM對象中通過Variant傳遞數組
 
【JSF心得】JAVA的對象傳遞是引用傳遞
基于jsf-component的portlet的構建通常需要了解一下幾點1. 所有的jsf-component都是單一實例的,也就是說在每一個session周期內,一個UI組件只存在一個實例2 對于UI組件中的變量,對于不屬于UI組件的對象(FTPClient...查看完整版>>【JSF心得】JAVA的對象傳遞是引用傳遞