iT邦幫忙

2025 iThome 鐵人賽

DAY 7
0
自我挑戰組

從0開始學習Java系列 第 7

java socket 小範例

  • 分享至 

  • xImage
  •  
package ch14;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.StandardCharsets;

	public static void main(String[] args) throws Exception {
		try (ServerSocket serverSocket = new ServerSocket(12345)) {
			System.out.println("伺服器啟動,等待連線...");

			try (Socket socket = serverSocket.accept();
					BufferedReader in = new BufferedReader(
							new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8));
					OutputStream rawOut = socket.getOutputStream();
					PrintWriter out = new PrintWriter(rawOut, true)) {

				String line;
				while ((line = in.readLine()) != null && !line.isEmpty()) {
					System.out.println("收到: " + line);
				}

				// 準備回應內容
				String body = "伺服器回覆的字樣";
				byte[] bodyBytes = body.getBytes(StandardCharsets.UTF_8);

				// 回傳最基本的 HTTP/1.1 回應
				out.print("HTTP/1.1 200 OK\r\n");
				out.print("Content-Type: text/plain; charset=UTF-8\r\n");
				out.print("Content-Length: " + bodyBytes.length + "\r\n");
				out.print("Connection: close\r\n");
				out.print("\r\n"); // 空行分隔 header 與 body
				out.flush();

				rawOut.write(bodyBytes);
				rawOut.flush();
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}


上一篇
使用 Java HttpURLConnection 下載網頁內容
下一篇
java.security 練習 Hashing (MD5 加密)
系列文
從0開始學習Java21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言