Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c# tcpserver

作者:只言片語中   发布日期:2026-02-11   浏览:103

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;

class TcpServerExample
{
    private static void HandleClient(TcpClient client)
    {
        using (NetworkStream stream = client.GetStream())
        {
            byte[] buffer = new byte[1024];
            int bytesRead;

            while (true)
            {
                try
                {
                    bytesRead = stream.Read(buffer, 0, buffer.Length);
                    if (bytesRead == 0)
                        break;

                    string receivedData = Encoding.ASCII.GetString(buffer, 0, bytesRead);
                    Console.WriteLine("Received: " + receivedData);

                    // Echo the data back to the client
                    stream.Write(buffer, 0, bytesRead);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error: " + ex.Message);
                    break;
                }
            }
        }

        client.Close();
        Console.WriteLine("Client disconnected.");
    }

    static void Main(string[] args)
    {
        TcpListener server = null;

        try
        {
            // Set the TCP port
            int port = 13000;
            IPAddress localAddr = IPAddress.Parse("127.0.0.1");

            // Create a TcpListener 
            server = new TcpListener(localAddr, port);

            // Start listening for client requests
            server.Start();

            Console.WriteLine("Server started. Waiting for connections...");

            while (true)
            {
                // Perform a blocking call to accept requests.
                TcpClient client = server.AcceptTcpClient();
                Console.WriteLine("Client connected.");

                // Handle the client request in a separate thread
                Thread clientThread = new Thread(() => HandleClient(client));
                clientThread.Start();
            }
        }
        catch (SocketException e)
        {
            Console.WriteLine("SocketException: {0}", e);
        }
        finally
        {
            // Stop listening for new clients
            if (server != null)
            {
                server.Stop();
            }
        }
    }
}

解释说明:

  1. TcpListener:用于监听传入的 TCP 请求。在这个例子中,服务器绑定到本地 IP 地址 127.0.0.1 和端口 13000

  2. AcceptTcpClient():这是一个阻塞调用,等待客户端连接。一旦有客户端连接,它会返回一个 TcpClient 对象。

  3. HandleClient():这是处理每个客户端请求的方法。它在一个独立的线程中运行,以便服务器可以继续监听其他连接请求。

  4. NetworkStream:用于读取和写入数据。在这个例子中,服务器从客户端读取数据并将其回显给客户端。

  5. 异常处理:代码中包含了基本的异常处理机制,以确保服务器在遇到错误时能够正确关闭连接并输出错误信息。

  6. 线程管理:每个客户端连接都在一个新的线程中处理,以确保服务器可以同时处理多个客户端。

如果你有任何问题或需要进一步的帮助,请告诉我!

上一篇:c#判断字符串为空

下一篇:c# asp.net

大家都在看

c# 二进制

c# 创建目录

c# datatable group by

c# tcp client

c# type.gettype

c# sqlconnection

c# string.format 小数位数

.net和c#

c#获取系统时间

c#游戏开发

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站