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 閱讀(273) 評論(0)  編輯  收藏 所屬分類: network

          主站蜘蛛池模板: 离岛区| 青龙| 临汾市| 乡宁县| 和田县| 阿尔山市| 永善县| 建水县| 济南市| 恩平市| 新宁县| 云和县| 桐庐县| 伊宁县| 长垣县| 容城县| 浠水县| 西藏| 缙云县| 于田县| 聊城市| 尉犁县| 苏州市| 洪湖市| 富平县| 洪洞县| 长垣县| 灌阳县| 镇坪县| 家居| 通化县| 丽水市| 佳木斯市| 上饶县| 南平市| 维西| 曲麻莱县| 当阳市| 三门县| 景宁| 蕲春县|