网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.菜鸟初学Java的备忘录(七).
.Spring与iBATIS的集成.
.applet的参数化--对数组进行初始.
.java Socket 通讯的代码例子.
.RMI规范--第三章.
.Java初学问题实录.
.JAVA 省略语与名词解释.
.简单的理解类的继承和多态性.
.如何使用Runtime.addShutdownHook.
.JavaSocket编程(二)Java面向连.
.Java语言入门级的十二大特色详细.
.深入Spring MVC framework之总体.
.Beans入门必读之状态会话Bean基础.
.设计不受传统网络限制的 P2P 系统.
.自己开发的java中文处理编辑器.
.Java二进制兼容规则:域.
.把P2P进行到底:讲述Jxta的故事(.
.谨慎使用单精度/双精度这两数值类.
.分页显示Oracle数据库记录的类(2.
.J2EE应用程序打包与部署之三.

通过socket传递java对象(对象序列化)

发表日期:2008-1-5



  这篇文章主要实现的是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);
}
}

}
上一篇:线程基础(第二部分)Java线程的缺陷和副作用几解决办法 人气:636
下一篇:Java传递对象给期望原始类型参数的方法 人气:713
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐