Java 網路程式設計 -- TCP

Java 網路程式

簡介

IP

URL

UDP

TCP

Telnet

WebServer

網頁下載

網路爬蟲

Proxy

瀏覽器

訊息

相關網站

參考文獻

最新修改

簡體版

English

程式:TcpServer.java

import java.net.*;
import java.io.*;
 
// 1. 本程式必須與 TcpClient.java 程式搭配執行,先執行本程式再執行 UdpClient。
// 2. 執行方法 : java TcpServer
 
public class TcpServer {
    public static int port = 20; // 連接埠
 
    public static void main(String args[]) throws Exception {
        ServerSocket ss = new ServerSocket(port);     // 建立 TCP 伺服器。
        while (true) {                                // 不斷的接收處理輸入訊息。
            Socket sc = ss.accept();                // 接收輸入訊息。
            OutputStream os = sc.getOutputStream();    // 取得輸出串流。
            os.write("From Server : Hi !".getBytes("UTF-8"));// 送訊息到 Client 端。
            os.close();                                // 關閉輸出串流。
            sc.close();                                // 關閉 TCP 伺服器。
        }
    }
}

程式:TcpClient.java

import java.net.*;
import java.io.*;
 
// 1. 本程式必須與 TcpServer.java 程式搭配執行,先執行 TcpServer 再執行本程式。
// 2. 本程式必須有一個參數,指定伺服器的 IP。
// 用法範例: java TcpClient 127.0.0.1
 
public class TcpClient {
    public static int port = 20; // 設定傳送埠為 20。
 
    public static void main(String args[]) throws Exception {
        Socket client = new Socket(args[0], port);     // 根據 args[0] 的 TCP Socket.
        InputStream in = client.getInputStream();      // 取得輸入訊息的串流
        StringBuffer buf = new StringBuffer();        // 建立讀取字串。
        try {
            while (true) {            // 不斷讀取。
                int x = in.read();    // 讀取一個 byte。(read 傳回 -1 代表串流結束)
                if (x==-1) break;    // x = -1 代表串流結束,讀取完畢,用 break 跳開。
                byte b = (byte) x;    // 將 x 轉為 byte,放入變數 b.
                buf.append((char) b);// 假設傳送ASCII字元都是 ASCII。
            }
        } catch (Exception e) {
            in.close();                // 關閉輸入串流。
        }
        System.out.println(buf);                    // 印出接收到的訊息。
        client.close();                                // 關閉 TcpSocket.
    }
}

執行結果

編譯

D:\java>javac TcpServer.java

D:\java>javac TcpClient.java

TcpServer

D:\java>java TcpServer

TcpClient

D:\java>java TcpClient 127.0.0.1
From Server : Hi !

Facebook

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License