C#中编写TCP客户端和服务端

在C#中编写TCP客户端和服务端涉及到System.Net.Sockets命名空间中的TcpListener和TcpClient类。下面分别给出一个简单的TCP服务端和客户端的示例代码。

using System;

using System.Net;

using System.Net.Sockets;

using System.Text;

public class TcpServer

{

public static void StartServer()

{

// 监听的IP和端口

IPAddress ipAddress = IPAddress.Parse("127.0.0.1");

int port = 8888;

// 创建TcpListener实例

TcpListener listener = new TcpListener(ipAddress, port);

Console.WriteLine($"服务器启动,等待连接: {ipAddress}:{port}");

// 开始监听

listener.Start();

try

{

while (true)

{

// 等待客户端连接

TcpClient client = listener.AcceptTcpClient();

Console.WriteLine("客户端已连接");

// 获取网络流,用于读取客户端发送的数据

NetworkStream stream = client.GetStream();

// 读取数据

byte\[\] buffer = new byte1024;

int read = stream.Read(buffer, 0, buffer.Length);

string dataReceived = Encoding.ASCII.GetString(buffer, 0, read);

Console.WriteLine($"接收到的消息: {dataReceived}");

// 发送响应

string response = "你好,客户端!";

byte\[\] sendData = Encoding.ASCII.GetBytes(response);

stream.Write(sendData, 0, sendData.Length);

// 关闭客户端连接

client.Close();

}

}

catch (Exception ex)

{

Console.WriteLine(ex.ToString());

}

finally

{

// 停止监听

listener.Stop();

}

}

public static void Main(string\[\] args)

{

StartServer();

}

}

这些示例假设在同一台机器上运行服务端和客户端,因此使用了localhost(即127.0.0.1)作为IP地址。在实际应用中,服务端IP应为实际服务器的IP地址。

在实际部署时,确保防火墙配置允许相应的端口通信。

这些代码仅提供了基本功能,生产环境中可能需要更复杂的错误处理和性能优化。

相关推荐
yuniko-n3 小时前
【JUC】线程间通信
java·开发语言
yuniko-n3 小时前
【JUC】关于 Java 线程介绍
java·开发语言
geovindu3 小时前
rust: Borg Pattern(续)
开发语言·后端·设计模式·rust·博格模式
aqiu1111114 小时前
【C++算法打怪专栏】8. 字符串转换整数 (atoi)
开发语言·c++·算法
爱吃香菜的初学者5 小时前
十四.Linux——消息队列
linux·运维·开发语言
迅猛龙办公室5 小时前
python实现倒序输出数字
开发语言·python
夏幻灵11 小时前
JavaScript this 面试:五种绑定规则、优先级与常见面试陷阱
开发语言·javascript·面试
程序猿编码11 小时前
榨干 RTX5090 算力!Qwen3 专用单卡推理引擎,手写C++/CUDA 算子实现 MTP 推测解码
开发语言·c++·大模型推理·qwen3·多模态推理
曹牧12 小时前
C#:未被引用的函数
c#
天启HTTP12 小时前
爬虫防封核心原理:IP轮换机制与风控规避逻辑
linux·服务器·网络·爬虫·tcp/ip