求解一个Socket问题
import java.io.*;
import java.net.*;
public class Server4
{
	public static void main(String[] args)
	{
		ServerSocket ss = null;
		Socket s =null;
		try
		{
			ss = new ServerSocket(8888);
		}catch(Exception e){}
			try
			{
				s = ss.accept();
			}catch(Exception e){}
				try
				{
				//开始声明各种输出输入流
				//用来获得客户端的输入
				BufferedReader buff = new BufferedReader(new InputStreamReader(s.getInputStream()));
				//自己向客户端输入东西
				BufferedReader buff2 = new BufferedReader(new InputStreamReader(System.in));
				//用于向客户端输出
				BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
				boolean b = true;
				System.out.println(buff.readLine());
				while(b)
				{
					bw.write(buff2.readLine());
					bw.flush();
					System.out.println("clien say: "+buff.readLine());
					if(buff2.readLine().equals("exit")){b=false;}
					System.out.println("Server say: "+buff2.readLine());					
				}
	}catch(Exception e){}
}
}
import java.io.*;
import java.net.*;
public class Client4
{
	public static void main(String[] args)
	{
		try
		{
			//声明客户端
			Socket s = new Socket("127.0.0.1",8888);
			//创建向服务器输入的流
			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
			//接受服务器的流
			BufferedReader buff = new BufferedReader(new InputStreamReader(s.getInputStream()));
			//创建从键盘输入流
			BufferedReader buff2 = new BufferedReader(new InputStreamReader(System.in));
			String sr = null;
			while((sr=buff2.readLine())!=null)
			{
				bw.write(sr);
				System.out.println("Server say :"+buff.readLine());
				if(sr.equals("exit"))break;
				System.out.println("client say :"+buff2.readLine());
			}						
	}catch(Exception e){}
	}
}
请教为什么我的客户端和服务器说话,就阻塞在那了,求解错在哪里了。
------解决方案--------------------
public class Client4  //客户端
.........
BufferedReader buff2 = new BufferedReader(new InputStreamReader(System.in));
String sr = null;
while((sr=buff2.readLine())!=null) //等待服务器端的消息。。。。。
public class Server4 //服务器
.....try
{
s = ss.accept(); //阻塞。。。等待消息
请问消息从哪里来?