lqxue

常用链接

统计

book

tools

最新评论

通过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类:
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);
        }
    }

}

posted on 2007-08-01 14:08 lqx 阅读(266) 评论(0)  编辑  收藏 所属分类: network


只有注册用户登录后才能发表评论。


网站导航: