实现个简单的聊天室
主要的功能服务器端和客户端,服务器一开,客户端之间就可以相互通信, 
 知道大体的思路,客户端的界面已经写好,大家帮帮我 
 客户端的界面 
 import   java.awt.event.*; 
 import   javax.swing.*; 
 public   class   ChatClient   { 
 	public   static   void   main(String[]   args)   { 
 		JFrame   frame=new   JFrame( "Chat   Client "); 
 		frame.setSize(400,300); 
 		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  		 
 		final   JTextArea   jta=new   JTextArea(); 
 		final   JTextField   jtf=new   JTextField(); 
 		frame.add(new   JScrollPane(jta)); 
 		frame.add(jtf, "South ");  		 
 		jta.setEditable(false);  		 
 		frame.setVisible(true);  		 
 		jtf.addActionListener(new   ActionListener(){ 
 			public   void   actionPerformed(ActionEvent   arg0)   { 
 				String   text=jtf.getText(); 
 				jtf.setText( " "); 
 				jta.append(text+ "\n "); 
 			} 
 		}); 
 	} 
 } 
------解决方案--------------------这个程序有点小问题,测试了就知道了 
 //客户端 
 package chat;   
 import java.awt.event.*; 
 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.Socket; 
 import java.net.
UnknownHostException;   
 import javax.swing.*;   
 public class ChatClient { 
 	public static void main(String[] args) { 
 		JFrame frame = new JFrame( "Chat Client "); 
 		frame.setSize(400, 300); 
 		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
 		final JTextArea jta = new JTextArea(); 
 		final JTextField jtf = new JTextField(); 
 		frame.add(new JScrollPane(jta)); 
 		frame.add(jtf,  "South ");   
 		jta.setEditable(false);   
 		frame.setVisible(true);   
 		class ClientThread extends Thread { 
 			public void run() { 
 				Socket s = null; 
 				try { 
 					s = new Socket( "127.0.0.1 ", 9000);   
 					InputStream is = s.getInputStream(); 
 					InputStreamReader isr = new InputStreamReader(is); 
 					BufferedReader br = new BufferedReader(isr);   
 					while (true) { 
 						String str = br.readLine(); 
 						jta.append(str +  "\n "); 
 					} 
 				} catch (UnknownHostException e) { 
 					e.printStackTrace(); 
 				} catch (
IOException e) { 
 					e.printStackTrace(); 
 				} finally { 
 					if (s != null) 
 						try { 
 							s.close(); 
 						} catch (IOException e) { 
 							e.printStackTrace(); 
 						} 
 				} 
 			} 
 		}   
 		Thread t = new ClientThread(); 
 		t.start();   
 		class WriterClient extends Thread { 
 			public void run() { 
 				Socket s = null; 
 				try { 
 					s = new Socket( "127.0.0.1 ", 9000);   
 					OutputStream os = s.getOutputStream(); 
 					PrintWriter pw = new PrintWriter(os);   
 					pw.println(jtf.getText());   
 					pw.flush(); 
 				} catch (UnknownHostException e) { 
 					e.printStackTrace(); 
 				} catch (IOException e) { 
 					e.printStackTrace(); 
 				} finally { 
 					if (s != null) 
 						try { 
 							s.close(); 
 						} catch (IOException e) { 
 							e.printStackTrace(); 
 						} 
 				} 
 			} 
 		}   
 		jtf.addActionListener(new ActionListener() { 
 			public void actionPerformed(ActionEvent arg0) { 
 				Thread t1 = new WriterClient(); 
 				t1.start(); 
 			} 
 		});