当前位置: 首页 > news >正文

一个完整的 TCP 服务器监听示例(C#)

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;class TcpServer
{static void Main(){// 1. 创建 TCP 流式套接字(与你提供的代码一致)Socket serverSocket = new Socket(SocketType.Stream, ProtocolType.Tcp);try{// 2. 绑定本地端点(IP 地址设为 0.0.0.0 表示监听所有网络接口,端口设为 8888)IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Any, 8888);serverSocket.Bind(localEndPoint);// 3. 开始监听(参数为最大挂起连接数)serverSocket.Listen(10);Console.WriteLine("服务器已启动,正在监听端口 8888...");// 4. 循环接受客户端连接(阻塞式)while (true){// 接受客户端连接,返回一个新的 Socket 用于与该客户端通信Socket clientSocket = serverSocket.Accept();Console.WriteLine($"新客户端连接:{clientSocket.RemoteEndPoint}");// 示例:向客户端发送欢迎消息byte[] welcomeMsg = Encoding.UTF8.GetBytes("欢迎连接到服务器!");clientSocket.Send(welcomeMsg);// 此处可添加处理客户端消息的逻辑(通常建议用多线程/异步处理)// 简单示例:关闭客户端连接(实际应用中需根据需求处理)clientSocket.Shutdown(SocketShutdown.Both);clientSocket.Close();}}catch (Exception ex){Console.WriteLine($"发生错误:{ex.Message}");}finally{// 关闭服务器套接字serverSocket.Close();}}
}

关键步骤说明:

  1. 创建套接字new Socket(SocketType.Stream, ProtocolType.Tcp) 正确创建了 TCP 套接字。
  2. 绑定端点Bind 方法将套接字与本地 IP 和端口关联(IPAddress.Any 表示监听所有可用网络接口)。
  3. 开始监听Listen(10) 启动监听,参数 10 表示最大允许的挂起连接队列长度。
  4. 接受连接Accept() 是阻塞方法,会等待客户端连接,返回的 clientSocket 用于与该客户端单独通信。

注意事项:

  • 实际应用中,建议使用 异步方法(如 AcceptAsync)或多线程处理客户端连接,避免主线程阻塞。
  • 端口号(示例中为 8888)需确保未被占用,且防火墙允许该端口的入站连接。
  • 通信完成后需关闭 clientSocket 和 serverSocket 以释放资源。
http://www.dtcms.com/a/511650.html

相关文章:

  • 执行操作后元素的最高频率1 2(LeetCode 3346 3347)
  • Java 大视界 -- Java 大数据在智慧交通停车场智能管理与车位预测中的应用实践
  • 版本设计网站100个关键词
  • 网站前置审批工程建设服务平台
  • 共聚焦显微镜(LSCM)的针孔效应
  • STM32CubeMX
  • 网站实现搜索功能四川建设安全协会网站
  • spark组件-spark core(批处理)-rdd特性-内存计算
  • 算法练习:双指针专题
  • 关于comfyui的triton安装(xformers的需求)
  • 爬虫+Redis:如何实现分布式去重与任务队列?
  • 烘焙食品网站建设需求分析wordpress生成静态地图
  • 区块链——Solidity编程
  • OpenSSH安全升级全指南:从编译安装到中文显示异常完美解决
  • 数据结构的演化:从线性存储到语义关联的未来
  • 爱博精电AcuSys 电力监控系统赋能山东有研艾斯,铸就12英寸大硅片智能配电新标杆
  • 基于AI与云计算的PDF操作工具开发技术探索
  • LeetCode 404:左叶子之和(Sum of Left Leaves)
  • 中小企业网站建设论文高端制作网站技术
  • 电子报 网站开发平面设计培训机构排行
  • 无人系统搭载毫米波雷达的距离测算与策略执行详解
  • Adobe Acrobat软件优化配置,启用字体平滑和默认单页连续滚动
  • 测试题-3
  • win10 win11搜索框空白解决方案
  • Linux系统:多线程编程中的数据不一致问题与线程互斥理论
  • 遇到oom怎么处理?
  • jenkins流水线项目部署
  • 网口学习理解
  • 企业网站 阿里云招聘网站开发
  • 证书兼职的人才网站高明网站设计