Java 網路程式設計 -- TCP
Java 網路程式簡介IPURLUDPTCPTelnetWebServer網頁下載網路爬蟲Proxy瀏覽器訊息相關網站參考文獻最新修改簡體版English |
程式:TcpServer.javaimport 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.javaimport 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. } } 執行結果編譯
TcpServer
TcpClient
|
page revision: 1, last edited: 08 Nov 2010 01:45
Post preview:
Close preview