java線程之一 單線程


對java的socket一直很陌生,陌生到別人問我線程通信時,感覺自己無地自容,愧對自己多java的熱愛。

正好最近項目抽風中,看到csdn上有相關資料,就自己寫了點demo。希望對剛入門或則盡快掌握socket通信開發

的朋友有所啟發。

服務端代碼

 1 /**
 2  * @author  draem0507@gmail.com
 3  * @TODO    java線程開發之一 單線程
 4  * @version 1.0
 5  * @date 2013-5-7下午09:19:45    
 6  * @blgos myblog:http://www.cnblogs.com/draem0507
 7  */
 8 
 9 public class ServerTest {
10 
11     public static void main(String[] args) throws IOException {
12 
13         ServerSocket server = new ServerSocket(10000);
14         Socket socket = server.accept();
15         BufferedReader in = new BufferedReader(new InputStreamReader(socket
16                 .getInputStream()));
17         PrintWriter out = new PrintWriter(socket.getOutputStream());
18         while (true) {
19             String msg = in.readLine();
20             System.out.println("服務端收到的信息:" + msg);
21             out.println("server receive:" + msg);
22             out.flush();
23             if (msg.equals("bye")) {
24                 break;
25             }
26 
27         }
28         
29         socket.close();
30 
31     }
32 
33 }

客戶端代碼

 1 public class ClientTest {
 2     public static void main(String[] args) throws Exception {
 3         Socket socket = new Socket("localhost", 10000);
 4         BufferedReader in = new BufferedReader(new InputStreamReader(socket
 5                 .getInputStream()));
 6         PrintWriter out = new PrintWriter(socket.getOutputStream());
 7         BufferedReader reader = new BufferedReader(new InputStreamReader(
 8                 System.in));
 9 
10         while (true) {
11             String msg = reader.readLine();
12             out.println(msg);
13             out.flush();
14             if (msg.equals("bye")) {
15                 break;
16             }
17             System.out.println(in.readLine());
18         }
19         socket.close();
20     }
21 }

測試代碼的時候,先運行服務端,在運行客戶端。

因為是單線程的,所以沒有辦法多次運行客戶端代碼。如果要實現1-n模式,則需要用到多線程模式。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM