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

          主站蜘蛛池模板: 富顺县| 平舆县| 内江市| 祁门县| 东源县| 东乡县| 柘城县| 翼城县| 曲靖市| 大同市| 沾益县| 营口市| 汉寿县| 元谋县| 玛多县| 霍邱县| 焦作市| 壤塘县| 中卫市| 甘肃省| 历史| 邢台市| 孝义市| 睢宁县| 象山县| 富裕县| 丹凤县| 青神县| 枣庄市| 阿拉善右旗| 霸州市| 揭东县| 图片| 天等县| 双江| 嘉善县| 惠来县| 黑水县| 韩城市| 梅河口市| 洛南县|