C#与套接字搏斗并试图控制硬件设备操作tcp/ip

C#与套接字搏斗并试图控制硬件设备操作tcp/ip,c#,sockets,C#,Sockets,我是c#新手,尝试通过tcp/ip控制设备。该设备的行为与服务器相同,因此,到目前为止,我所做的是,我的客户端程序启动连接并成功连接到该设备。 但我只有这些。一旦建立了连接,设备就开始发送我需要解析的所有十六进制字符串。我有设备的协议手册,所以我知道如何阅读它们,但我完全不知道如何在c#中实现这一点。 我认为需要做的是,我需要不断地监听设备发送数据。 然后我需要找到完整的十六进制命令字符串。我知道每个字符串都以“0x10,0x02”开头,以十六进制字符“0x10,0x03”结尾。 该设备规定,每

我是c#新手,尝试通过tcp/ip控制设备。该设备的行为与服务器相同,因此,到目前为止,我所做的是,我的客户端程序启动连接并成功连接到该设备。 但我只有这些。一旦建立了连接,设备就开始发送我需要解析的所有十六进制字符串。我有设备的协议手册,所以我知道如何阅读它们,但我完全不知道如何在c#中实现这一点。 我认为需要做的是,我需要不断地监听设备发送数据。 然后我需要找到完整的十六进制命令字符串。我知道每个字符串都以“0x10,0x02”开头,以十六进制字符“0x10,0x03”结尾。 该设备规定,每次收到字符串时,我还需要发送某种确认消息。“0x10,0x06”(确认),因此必须有某种双向通信。 任何帮助或指导都将不胜感激。
谢谢

您必须将传入的数据保存在缓冲区中,并继续查找该结束字符。找到起始字符和结束字符后,可以运行自定义的“parse”方法提取信息并清除缓冲区

这里有一个很好的起点:

在服务器部件中,您可以找到查找结束字符的示例:

您知道如何将数据读入字节数组吗?欢迎来到堆栈溢出!请包括一个例子。请解释一下。我不知道你的代码是什么样子的。您是否有接受客户机并获取流的
TcpListener
对象?你能发布这个连接码吗?你知道这个吗?