这篇文章主要实现的是j:通过socket传递Java对象。采用的方法就是对象序列化。方法是:通过socke
t建立c/s连接;通过ObjectOutputStream,ObjectOutputStream 读写对象。唯一需要留意的是传递的java
对象需要实现Serializable标记接口。
服务端代码:
package com.yt.manager.Serializable;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* @Description:服务器端Socket
* @ClassName: Server
* @Project: base-info
* @Author: zxf
* @Date: 2011-7-15
*/
public class Server {
public static void main(String[] args) {
ServerSocket serverSocket = null;
Socket socket = null;
ObjectInputStream objInputStream = null;
ObjectOutputStream objOutputStream = null;
try {
serverSocket = new ServerSocket(11111);
System.out.println("Server服务已启动。。。。");
socket = serverSocket.accept();
// 对客户端使用 ObjectOutputStream 写入的对象进行反序列化
objInputStream = new ObjectInputStream(socket.getInputStream());
Customer cusotmer = (Customer) objInputStream.readObject();
cusotmer.setName("你好:" + cusotmer.getName());
objOutputStream = new ObjectOutputStream(socket.getOutputStream());
objOutputStream.writeObject(cusotmer);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
serverSocket.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
客户端代码:
package com.yt.manager.Serializable;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* @Description:服务器端Socket
* @ClassName: Server
* @Project: base-info
* @Author: zxf
* @Date: 2011-7-15
*/
public class Server {
public static void main(String[] args) {
ServerSocket serverSocket = null;
Socket socket = null;
ObjectInputStream objInputStream = null;
ObjectOutputStream objOutputStream = null;
try {
serverSocket = new ServerSocket(11111);
System.out.println("Server服务已启动。。。。");
socket = serverSocket.accept();
// 对客户端使用 ObjectOutputStream 写入的对象进行反序列化
objInputStream = new ObjectInputStream(socket.getInputStream());
Customer cusotmer = (Customer) objInputStream.readObject();
cusotmer.setName("你好:" + cusotmer.getName());
objOutputStream = new ObjectOutputStream(socket.getOutputStream());
objOutputStream.writeObject(cusotmer);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
serverSocket.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
package com.yt.manager.Serializable;
import java.io.Serializable;
/**
* @Description:实现序列化接口
* @ClassName: Customer
* @Project: base-info
* @Author: zxf
* @Date: 2011-5-30
*/
public class Customer implements Serializable {
private static final long serialVersionUID = 1L;
public String name;
public int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}