通過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的對象傳遞是引用傳遞
 
java中的對象傳遞;
private void test() throws SQLException{ ResultSet rs = query(); closeAll(rs); System.out.println("535........關于java對象傳遞的測試ResultSet:"+rs); rs.close(); rs = null;}private void close...查看完整版>>java中的對象傳遞;
 
java傳遞是引用的拷貝,既不是引用本身,更不是對象
看think in java的時候曾經提到過java是傳值的,但一直沒有引起重視。直到碰到一個實際的問題,才領悟到這個最基本的問題。 Java中一切都是值傳遞。你可以通過方法來改變被引用的對象中的屬性值,卻無法改...查看完整版>>java傳遞是引用的拷貝,既不是引用本身,更不是對象
 
深度探索Java RMI遠端對象傳遞技術
1、前言RMI即java remote method Invocation(遠端方法調用),它提供了針對java對象分布式計算的一種簡單而直接的模型。這些java對象可能是新的java對象,也可能是圍繞已有API的一些java外覆類。Java信奉“Write onc...查看完整版>>深度探索Java RMI遠端對象傳遞技術
 
COMDCOM對象中通過Variant傳遞數組
因爲COM/DCOM對象都不在Client程序運行的內存空間(內進程COM對象除外,即便如此,爲了統一接口,內進程的COM也不得傳遞指針),而且在Win32中所有的程序都有自己獨立的2GB的內存空間,程序與程序之間傳遞指針(內存地址)...查看完整版>>COMDCOM對象中通過Variant傳遞數組
 
 
回到王朝網路移動版首頁