服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

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

}

扫描关注微信公众号