Java學習筆記_網路(2)

來源:互聯網
上載者:User

標籤: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)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.