TCP监听--监听指定IP的端口号

using HIBase.Library.Helper;

using System;

using System.Net;

using System.Net.Sockets;

using System.Threading;

public class TcpReceiver

{

private TcpListener _listener;

private bool _isRunning;

private const int PORT = 2001;//自行指定

// 启动监听(外部调用)

public void Start()

{

if (_isRunning) return;

_isRunning = true;

new Thread(ListenThread) { IsBackground = true }.Start();

}

// 监听线程

private void ListenThread()

{

try

{

_listener = new TcpListener(IPAddress.Any, PORT);//自行制定

_listener.Start();

while (_isRunning)

{

// 等待客户端连接

if (_listener.Pending())

{

TcpClient client = _listener.AcceptTcpClient();

// 每次来新连接,都开独立线程接收

new Thread(() => ReceiveClient(client))

{

IsBackground = true

}.Start();

}

Thread.Sleep(10);

}

}

catch

{

Thread.Sleep(1000);

if (_isRunning) ListenThread();

}

}

// 处理一个客户端连接(支持持续收发)

private void ReceiveClient(TcpClient client)

{

byte\[\] buffer = new byte1024 \* 8;

try

{

using (NetworkStream stream = client.GetStream())

{

while (_isRunning && client.Connected)

{

if (stream.DataAvailable)

{

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

if (len <= 0) break;

byte\[\] data = new bytelen;

Array.Copy(buffer, data, len);

// 持续处理数据

ProcessReceivedData(data);

}

Thread.Sleep(10);

}

}

}

catch

{

}

finally

{

try { client.Close(); } catch { }

}

}

private void ProcessReceivedData(byte\[\] data)

{

try

{

//业务处理逻辑

}

catch { }

}

// 停止

public void Stop()

{

_isRunning = false;

try { _listener.Stop(); } catch { }

}

}

相关推荐
MC皮蛋侠客29 分钟前
DNP3 系列(十二):测试与工具链——模拟器、Wireshark 与一致性测试
网络·wireshark·dnp3
虎王物联1 小时前
工业Modbus TCP协议深度实战:STM32 HAL库实现从机通信与数据上云
stm32·物联网·网络协议·tcp/ip·嵌入式
秋饼2 小时前
JDK 27 企业级 AI 服务落地实战:G1 默认、紧凑对象头、后量子 TLS 与 JFR 脱敏全解析
java·ai·技术分享·后端开发
观测云2 小时前
Fastjson 高危 RCE(CVE-2026-16723):如何用观测云快速发现并完成修复
网络·安全·可观测性·观测云
卓怡学长2 小时前
w176基于SpringBoot的医院管理系统
java·spring boot·spring·maven·intellij-idea
lemon_sjdk2 小时前
ObjectProperty
java·开发语言·算法
hh9503 小时前
Agent Plan x DeepSeek Harness:Agent 供应链安全与第三方插件审计
java·开发语言·安全·agent plan·adg成都社区·adg社区
吴声子夜歌3 小时前
Java面试——HBase原理及应用
java·面试·hbase
浪兎兎3 小时前
【Java Web】Servlet + JSP 笔记
java·前端·servlet
吴声子夜歌3 小时前
Java面试——ElasticSearch原理及应用
java·面试·es