//服务器端的类 
import java.io.*; 
import java.net.*; 
public class TestServer { 
DataInputStream in; // 输入流 
DataOutputStream out; // 输出流 
ObjectInputStream ois; 
ObjectOutputStream oos; 
int port = 11111; 
class ServerThread extends Thread { 
Socket socket = null; 
public ServerThread(Socket s) { 
socket = s; 

public void run() { 
try { 
in = new DataInputStream(socket.getInputStream()); 
out = new DataOutputStream(socket.getOutputStream()); 
System.out.println("in in ServerThread =" + in); 
System.out.println("out in ServerThread=" + out); ois = new ObjectInputStream(socket.getInputStream()); 
oos = new ObjectOutputStream(socket.getOutputStream()); 
System.out.println("ois in ServerThread =" + ois); 
System.out.println("oos in ServerThread=" + oos); 
} catch (IOException ex) { 
ex.printStackTrace(); 



TestServer() { 
ServerSocket server = null; 
Socket client = null; 
try { 
server = new ServerSocket(port); 
client = server.accept(); 
new ServerThread(client).start(); 
} catch (IOException e) { 
e.printStackTrace(); 


public static void main(String[]args){ 
new TestServer(); 

} //客户端的类. import java.io.*; 
import java.net.*; public class TestClient { 
int port = 11111; 
String host = "localhost"; 
DataInputStream in; // 输入流 
DataOutputStream out; // 输出流 
ObjectInputStream ois; 
ObjectOutputStream oos; 
class ServerThread extends Thread { 
Socket socket = null; 
public ServerThread(Socket s) { 
socket = s; 

public void run() { 
try { 
in = new DataInputStream(socket.getInputStream()); 
out = new DataOutputStream(socket.getOutputStream()); 
System.out.println("in in ServerThread =" + in); 
System.out.println("out in ServerThread=" + out); 
ois = new ObjectInputStream(socket.getInputStream()); 
oos = new ObjectOutputStream(socket.getOutputStream()); 
System.out.println("ois in ServerThread =" + ois); 
System.out.println("oos in ServerThread=" + oos); } catch (IOException ex) { 
ex.printStackTrace(); 



TestClient() { 
Socket socket = null; 
try { 
socket = new Socket(InetAddress.getByName(host), port); 
} catch (UnknownHostException e) { 
e.printStackTrace(); 
} catch (IOException e) { 
e.printStackTrace(); 

new ServerThread(socket).start(); 

public static void main(String[] args){ 
new TestClient(); 

} 大家先运行TestServer类,在运行TestClient类,结果是: 
in in ServerThread =java.io.DataInputStream@61de33 
out in ServerThread=java.io.DataOutputStream@14318bb 
小弟不明白的是为什么 
System.out.println("ois in ServerThread =" + ois); 
System.out.println("oos in ServerThread=" + oos); 
这段代码没有运行。 
并且关闭客户端后会出现异常如下: 
java.net.SocketException: Connection reset 
at java.net.SocketInputStream.read(Unknown Source) 
at java.io.ObjectInputStream$PeekInputStream.read(Unknown Source) 
at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source) 
at java.io.ObjectInputStream$BlockDataInputStream.readShort(Unknown Source) 
at java.io.ObjectInputStream.readStreamHeader(Unknown Source) 
at java.io.ObjectInputStream. <init> (Unknown Source) 
at TestServer$ServerThread.run(TestServer.java:21) 
该异常是什么意思?