1. 程式人生 > >Sokect簡單入門(1)TCP協議一

Sokect簡單入門(1)TCP協議一

一,伺服器端程式碼

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 伺服器端
 * */
public class LoginServer {
    public
static void main(String[] args) { try { //1.建立一個伺服器Socket(ServerSocket)繫結指定埠並開始監聽 ServerSocket serverSocket=new ServerSocket(8800); //2.使用accept()方法阻塞等待監聽,獲得新的連線 System.out.println("等待連線"); Socket socket=serverSocket.accept(); System.out.println(
"已接收到連線,開始處理請求....."); //3.獲得輸入流 InputStream is=socket.getInputStream(); BufferedReader br=new BufferedReader(new InputStreamReader(is)); //獲得輸出流 OutputStream os=socket.getOutputStream(); PrintWriter pw=new PrintWriter(os);
//4.讀取使用者輸入資訊 String info=null; while(!((info=br.readLine())==null)){ System.out.println("我是伺服器,使用者資訊為:"+info); } //給客戶一個響應 String reply="welcome!"; pw.write(reply); pw.flush(); //5.關閉資源 pw.close(); os.close(); br.close(); is.close(); socket.close(); serverSocket.close(); } catch (IOException e) { e.printStackTrace(); } } }

 

二、客戶端程式碼

 1 import java.io.BufferedReader;
 2 import java.io.IOException;
 3 import java.io.InputStream;
 4 import java.io.InputStreamReader;
 5 import java.io.OutputStream;
 6 import java.io.PrintWriter;
 7 import java.net.Socket;
 8 import java.net.UnknownHostException;
 9 
10 /**
11  * 客戶端
12  * */
13 public class LoginClient {
14     public static void main(String[] args) {
15         try {
16             //1.建立客戶端Socket連線,指定伺服器的位置以及埠
17             Socket socket=new Socket("localhost",8800);
18             //2.得到Socket的讀寫流
19             OutputStream os=socket.getOutputStream();
20             PrintWriter pw=new PrintWriter(os);
21             //輸入流
22             InputStream is=socket.getInputStream();
23             BufferedReader br=new BufferedReader(new InputStreamReader(is));
24             //3.利用流按照一定的協議對Socket進行讀/寫操作
25             String info="使用者名稱:Tom;使用者密碼:123456";
26             pw.write(info);
27             pw.flush();
28             socket.shutdownOutput();
29             //接受伺服器的響應並列印顯示
30             String reply=null;
31             while(!((reply=br.readLine())==null)){
32                 System.out.println("我是客戶端,伺服器的響應為:"+reply);
33             }
34             //4.關閉資源
35             br.close();
36             is.close();
37             pw.close();
38             os.close();
39             socket.close();
40         } catch (UnknownHostException e) {
41             // TODO Auto-generated catch block
42             e.printStackTrace();
43         } catch (IOException e) {
44             // TODO Auto-generated catch block
45             e.printStackTrace();
46         }
47         
48     }
49 }