package test0421;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketObjectServerTest {
public static void main(String[] args) {
try {
System.out.println("----服务端已连接-----");
ServerSocket serverSocket = new ServerSocket(9200);
Socket socket = serverSocket.accept();
InputStream in = socket.getInputStream();
ObjectInputStream ois = new ObjectInputStream(in);
SocketObjectClientTest.Student student = (SocketObjectClientTest.Student) ois.readObject();
String msg = "id: " + student.getId() + ",name: " + student.getName();
System.out.println("我是服务端,客户端说:" + msg);
socket.shutdownInput();
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os);
pw.write("已收到消息");
pw.flush();
socket.shutdownOutput();
pw.close();
os.close();
ois.close();
in.close();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
package test0421;
import java.io.*;
import java.net.Socket;
public class SocketObjectClientTest {
public static void main(String[] args) {
try {
System.out.println("--------客户端开始连接服务端------");
Socket socket = new Socket("localhost", 9200);
OutputStream os = socket.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(os);
Student stu = new Student(1, "小明");
oos.writeObject(stu);
socket.shutdownOutput();
InputStream in = socket.getInputStream();
InputStreamReader reader = new InputStreamReader(in);
BufferedReader br = new BufferedReader(reader);
String msg = br.readLine();
while (msg != null) {
System.out.println("我是客户端,服务器说:" + msg);
msg = br.readLine();
}
br.close();
reader.close();
in.close();
oos.close();
os.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
static class Student implements Serializable {
private int id;
private String name;
public Student(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}