模擬用戶登陸

 1 package demo11;
 2 
 3 import java.io.BufferedReader;
 4 import java.io.IOException;
 5 import java.io.InputStream;
 6 import java.io.InputStreamReader;
 7 import java.io.OutputStream;
 8 import java.net.Socket;
 9 
10 /**
11  * 模擬用戶登陸的功能,客戶端發送登陸信息請求,服務器接收請求並回應
12  * @author BCh_Chen
13  *
14  */
15 public class LoginClient {
16     public static void main(String[] args) {
17         System.out.println("客戶端啓動!");
18         try {
19             //發送請求到服務器
20             //建立一個客戶端的Socket
21             Socket socket=new Socket("localhost",8888);
22             //經過輸出流發送請求
23             String info="用戶名:Tom,密碼:123456";
24             //將字符串打散爲字節數組
25             byte[] infos=info.getBytes();
26             OutputStream os=socket.getOutputStream();
27             os.write(infos);
28             
29             socket.shutdownOutput();
30             
31             //接收服務器迴應
32             InputStream is=socket.getInputStream();
33             BufferedReader br=new BufferedReader(new InputStreamReader(is));
34             String reply;
35             while((reply=br.readLine())!=null) {
36                 System.out.println("服務器信息:"+reply);
37             }
38             
39             //釋放相應資源
40             br.close();
41             is.close();
42             os.close();
43             socket.close();
44         } catch (IOException e) {
45             e.printStackTrace();
46         }
47     }
48 }
 1 package demo11;
 2 
 3 import java.io.BufferedReader;
 4 import java.io.IOException;
 5 import java.io.InputStream;
 6 import java.io.InputStreamReader;
 7 import java.io.OutputStream;
 8 import java.net.ServerSocket;
 9 import java.net.Socket;
10 
11 public class LoginServer {
12     public static void main(String[] args) {
13         System.out.println("服務器啓動!");
14         try {
15             //接收客戶端請求
16             //建立一個Socket
17             ServerSocket serverSocket=new ServerSocket(8888);
18             //使用accept()偵聽並接收到此ServerSocket的鏈接
19             Socket socket=serverSocket.accept();
20             //得到輸入流,得到用戶的請求
21             InputStream is=socket.getInputStream();
22             BufferedReader br=new BufferedReader(new InputStreamReader(is));
23             String info;
24             while((info=br.readLine())!=null) {
25                 System.out.println("客戶端信息:"+info);
26             }
27             
28             
29             //給客戶端迴應信息
30             String reply="登陸成功!";
31             byte[] replys=reply.getBytes();
32             OutputStream os=socket.getOutputStream();
33             os.write(replys);
34             
35             //釋放相應資源
36             os.close();
37             br.close();
38             is.close();
39             socket.close();
40         } catch (IOException e) {
41             e.printStackTrace();
42         }
43     }
44 }

啓動順序是先啓動服務器,再啓動客戶端。java

相關文章
相關標籤/搜索