//服务器程序:
package net;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;public class Server { private ServerSocket server = null; int nPort = 3000; public Server() throws IOException 
{
server = new ServerSocket(nPort);
System.out.println("服务器启动");
} public void service() {
while (true) {
Socket socket=null;
try {
socket = server.accept();//等待客户连接 BufferedReader br = getReader(socket);
PrintWriter pw = getWriter(socket); System.out.println("New Connection accepted"
+ socket.getInetAddress() + socket.getPort()); String message = null; while ((message = br.readLine()) != null) {
System.out.println(message); pw.println(message); if (message.equals("exit"))
break;
} } catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} finally {
try {
if(socket!=null)
socket.close();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}
} private BufferedReader getReader(Socket socket) throws IOException {
InputStream socketIn = socket.getInputStream();
return new BufferedReader(new InputStreamReader(socketIn));
} private PrintWriter getWriter(Socket socket) throws IOException {
OutputStream socketOut = socket.getOutputStream();
return new PrintWriter(socketOut);
}


public static void main(String args[]) throws IOException
{
new Server().service();
}
}//客户机程序:
package net;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.Writer;
import java.net.Socket;
import java.net.UnknownHostException;public class Client { /**
 * @param args
 */
private int nPort=3000;
private String host="localhost";
private Socket socket=null;
public Client() throws UnknownHostException, IOException
{
socket=new Socket(host,nPort);
System.out.println("客户端启动");
}
public static void main(String[] args) throws UnknownHostException, IOException 
{
new Client().talk();
} public void talk() 
{
try {

BufferedReader br=getReader(socket);

PrintWriter pw=getWriter(socket);

BufferedReader localReader=new BufferedReader(new InputStreamReader(System.in));

String msg=null;

while((msg=localReader.readLine())!=null)
{
msg=localReader.readLine();
pw.println(msg);

System.out.println(br.readLine());

if(msg.equals("bye"))
break;
}
} catch (IOException e) {

e.printStackTrace();
}
finally
{
try {
socket.close();
} catch (IOException e) {

e.printStackTrace();
}
}

}
private PrintWriter getWriter(Socket socket) throws IOException {
OutputStream socketOut=socket.getOutputStream();

return new PrintWriter(socketOut,true);
}
private BufferedReader getReader(Socket socket) throws IOException {
InputStream SocketIn=socket.getInputStream();

return new BufferedReader(new InputStreamReader(SocketIn));
}}
产生的问题是客户机向服务器发送一条信息后,服务器受到信息,但是就死“机”了,哪位大侠指点下。。