这篇文章主要实现的是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);
}
}
}
闽公网安备 35060202000074号