標籤:span frame public void inpu new int dac tput
單向的用戶端發送伺服器端接收並顯示,沒有使用多線程
1 import javax.swing.*; 2 import java.awt.*; 3 import java.io.*; 4 import java.net.*; 5 import java.awt.event.*; 6 7 public class ChatClient { 8 private JTextArea text_area; 9 private PrintWriter writer;10 private Socket s;11 12 public static void main(String[] args) {13 ChatClient client = new ChatClient();14 client.go();15 }16 17 private void go() {18 build_gui();19 setup_net();20 }21 22 private void build_gui() {23 JFrame frame = new JFrame("Chat Client");24 JPanel panel = new JPanel();25 text_area = new JTextArea(1, 20);26 panel.add(text_area);27 JButton button = new JButton("Send");28 button.addActionListener(new SendButtonListener());29 panel.add(button);30 frame.add(BorderLayout.CENTER, panel);31 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);32 frame.setBounds(50, 50, 400, 100);33 frame.setVisible(true);34 }35 36 public class SendButtonListener implements ActionListener {37 public void actionPerformed(ActionEvent a) {38 String msg = text_area.getText();39 System.out.println(msg);40 writer.println(msg);41 writer.flush(); //如果沒有則伺服器端收不到訊息42 }43 }44 45 private void setup_net() {46 try {47 s = new Socket("127.0.0.1", 4242);48 writer = new PrintWriter(s.getOutputStream()); 49 } catch (IOException ex) {50 ex.printStackTrace();51 }52 }53 }
1 import java.io.*; 2 import java.net.*; 3 4 public class ChatServer { 5 6 public static void main(String[] args) { 7 ChatServer server = new ChatServer(); 8 server.go(); 9 }10 11 private void go() {12 setup_net();13 }14 15 private void setup_net() {16 try {17 ServerSocket serverSock = new ServerSocket(4242);18 while (true) {19 Socket s = serverSock.accept();20 System.out.println("client connected");21 InputStreamReader streamReader = new InputStreamReader( s.getInputStream() );22 BufferedReader reader = new BufferedReader( streamReader );23 String msg;24 try { //如果沒有這個try則當用戶端關閉後會異常退出25 while ( (msg = reader.readLine()) != null ) {26 System.out.println(msg);27 }28 } catch (IOException ex) { System.out.println("client disconnected"); }29 }30 } catch (IOException ex) {31 ex.printStackTrace();32 }33 }34 }
Java學習筆記_網路(2)