首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

簡單 C# Socket 程式設計(一):伺服器端基礎實作

     編輯:關於C語言

伺服器完整程式碼 (Console)

using System; using System.Net; using System.Net.Sockets; using System.IO;

public class EchoServer
{
    public static void Main()
    {
        int port = 1234;
        IPAddress ip = Dns.Resolve("localhost").AddressList[0];
        TcpListener listener = new TcpListener(ip, port);
        listener.Start();
        Console.WriteLine("Server Started");

        Socket socket = listener.AcceptSocket(); // 阻塞等待單一連線
        try
        {
            if (socket.Connected)
            {
                while (true)
                {
                    Console.WriteLine("Client connected");
                    NetworkStream ns = new NetworkStream(socket);
                    StreamWriter sw = new StreamWriter(ns);
                    StreamReader sr = new StreamReader(ns);
                    string line = sr.ReadLine();
                    Console.WriteLine("Read: " + line);
                    line = line.ToUpper() + "!";
                    sw.WriteLine(line);
                    Console.WriteLine("Wrote: " + line);
                    sw.Flush();
                }
            }
        }
        catch (Exception ex) { Console.WriteLine(ex); }
        finally { socket.Close(); Console.WriteLine("Exiting"); }
    }
}

流程說明

  1. TcpListener 綁定 IP/Port 並 Start()。
  2. AcceptSocket() 同步接受一個連線(單執行緒,一次只能服務一個用戶端)。
  3. 使用 NetworkStream、StreamReader/Writer 進行文字收發。
  4. 將收到訊息轉大寫加驚嘆號回傳。

擴充方向

  • 多執行緒/非同步 BeginAccept 支援多用戶端。
  • 協定設計:訊息長度前綴、心跳、序列化格式(JSON/Protobuf)。
  • 優雅關閉:處理 SocketException、CancellationToken。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved