packageChatIV;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.PrintWriter;importjava.net.Socket;importjava.net.UnknownHostException;importjavax.swing.JFrame;importjavax.swing.JScrollPane;importjavax.swing.JTextArea;importjavax.swing.JTextField;//广播聊天室客户端publicclassClient {
JTextArea jta;
JTextField jtf;
BufferedReader in;
PrintWriter out;//Swing画一个界面privatevoidinitGUI(){
JFrame f=newJFrame("Client");
f.setSize(400,300);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jta=newJTextArea();
jta.setEditable(false);
f.add(newJScrollPane(jta));
jtf=newJTextField();
f.add(jtf,"South");
f.setVisible(true);
jtf.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvent arg0) {
String text=jtf.getText();
jtf.setText("");
out.println(text);
out.flush();
}
});
}//连接初始化privatevoidinitNet(){try{
Socket s=newSocket("127.0.0.1",8186);//创建Socket端口8186,端口号随意,避免常用端口即可out=newPrintWriter(s.getOutputStream());//文本流输出,利用Socket对象获得getOutputStream()in=newBufferedReader(newInputStreamReader(s.getInputStream()));//包装成字符流}catch(UnknownHostException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}
}//消息接收privatevoidreceive(){try{while(true){
String str=in.readLine();//读BufferedReaderif(str==null){return;
}
jta.append("说"+str+"\n");//加载到JTextArea中,显示}
}catch(IOException e) {
e.printStackTrace();
}
}privateClient(){this.initGUI();this.initNet();
}publicstaticvoidmain(String args[]){
Client c=newClient();
c.receive();
}
}