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();
}
}