C# TCP 客户端监听数据

Posted

技术标签:

【中文标题】C# TCP 客户端监听数据【英文标题】:C# TCP Client listening for data 【发布时间】:2016-10-03 21:47:43 【问题描述】:

我想在工作中连接到特定的条形码阅读器,但目前我在理解 TCP 流读取如何与 C# 配合使用时遇到了一些问题。

我在 *** 上查找了许多代码示例,据我所知,人们经常打开连接,发送命令,然后请求回复。

关键是,条形码阅读器只是接受 TCP 连接,然后将数据与我的数据一起发送。

我想找到使用 TcpClient 或 NetworkStream 以连续方式读取数据的最有效方法。我的意思是,我想在数据传入时收听数据,但在收听的同时还要处理许多其他事情。

我想知道是否存在简单的 TCP 库,例如具有 Connect 功能的库,以及在接收数据时触发的事件(带有分隔符或长度)。

谢谢

【问题讨论】:

【参考方案1】:

TCP 听起来不对,但如果是,它可能会充当 http 服务器。如果是,那么您将使用 HttpClient。如果只是 TCP,你会这样做:Async Client Socket

【讨论】:

【参考方案2】:

我终于找到了一个名为SimpleTCP 的简单TCP 库。我可以使用以下代码行连接到我的网络条形码阅读器:g_Client.Connect(ip, port);

然后有一个可用的事件称为 DataReceived (g_Client.DataReceived += l_Client_DataReceived;),它允许我做我想做的事。

这个库还允许访问它正在使用的 TcpClient,我目前正在寻找查看特殊字符的可能性,例如 (当前返回我一个 ASCII 中的特殊字符)但我将不得不做另一个线程为此我认为。

【讨论】:

以上是关于C# TCP 客户端监听数据的主要内容,如果未能解决你的问题,请参考以下文章

linux epoll机制对TCP 客户端和服务端的监听C代码通用框架实现

QT TCP/IP

C# 1000个socket客户端并发

.Net TCP探索——TCP服务端开发(同时监听多个客户端请求)

TCP 数据包进入服务器,但不进入监听程序

c# WCF 可以像socket那样监听吗?