java socket編程

來源:互聯網
上載者:User

標籤:

類比java scoket服務端和用戶端編程

 

import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket;public class TalkClient {    public static void main(String args[]) {        try {            // 向原生8000連接埠發出客戶請求            Socket socket = new Socket("127.0.0.1", 8000);            // 由系統標準輸入裝置構造BufferedReader對象            BufferedReader sin = new BufferedReader(new InputStreamReader(                    System.in));            // 由Socket對象得到輸出資料流,並構造PrintWriter對象            PrintWriter os = new PrintWriter(socket.getOutputStream());            String readline,receive;            readline = sin.readLine(); // 從系統標準輸入讀入一字串            BufferedReader is = new BufferedReader(new InputStreamReader(                    socket.getInputStream()));            while (!readline.equals("bye")) {                // 若從標準輸入讀入的字串為 "bye"則停止迴圈                os.println(readline);                // 將從系統標準輸入讀入的字串輸出到Server                os.flush();                // 重新整理輸出資料流,使Server馬上收到該字串                System.out.println("client send:" + readline);                //Thread.sleep(1000);                receive = is.readLine();                System.out.println(receive);                // 從Server讀入一字串,並列印到標準輸出上                readline = sin.readLine(); // 從系統標準輸入讀入一字串            } // 繼續迴圈            os.close(); // 關閉Socket輸出資料流            is.close(); // 關閉Socket輸入資料流            socket.close(); // 關閉Socket        } catch (Exception e) {        }    }}
import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class TalkServer {    public static void main(String args[]) {        try {            ServerSocket server = null;            try {                server = new ServerSocket(8000);                // 建立一個ServerSocket在連接埠8000監聽客戶請求            } catch (Exception e) {                System.out.println("can not listen to:" + e);                // 出錯,列印出錯資訊            }            Socket socket = null;            try {                socket = server.accept();                // 使用accept()阻塞等待客戶請求,有客戶                // 請求到來則產生一個Socket對象,並繼續執行            } catch (Exception e) {                System.out.println("Error." + e);                // 出錯,列印出錯資訊            }            String line;            BufferedReader is = new BufferedReader(new InputStreamReader(                    socket.getInputStream()));            // 由Socket對象得到輸入資料流,並構造相應的BufferedReader對象            PrintWriter os = new PrintWriter(socket.getOutputStream());            // 由Socket對象得到輸出資料流,並構造PrintWriter對象            line = is.readLine();            // 從標準輸入讀入一字串            while (!line.equals("bye")) {                // 如果該字串為 "bye",則停止迴圈                os.println("server send:yeah,"+line);                // 向用戶端輸出該字串                os.flush();                // 重新整理輸出資料流,使Client馬上收到該字串                System.out.println("Server receive:" + line);                // 從Client讀入一字串,並列印到標準輸出上                line = is.readLine();                // 從系統標準輸入讀入一字串            }// 繼續迴圈            os.close(); // 關閉Socket輸出資料流            is.close(); // 關閉Socket輸入資料流            socket.close(); // 關閉Socket            server.close(); // 關閉ServerSocket        } catch (Exception e) {        }    }}

 

java socket編程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.