天天看點

java socket 廣播_[原]JavaSocket實作廣播聊天室

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

}

}