gpt4 book ai didi

发送从串行端口接收的数据的 C# TCP/IP 客户端 - 建议

转载 作者:可可西里 更新时间:2023-11-01 02:39:43 25 4
gpt4 key购买 nike

目前我正在开发一个应用程序,它通过串行端口从 RFID 读卡器接收数据。数据,之后数据应该通过 TCP/IP 发送到服务器。

我已经让这两个东西都起作用了,但不是同时起作用。我可以从卡上读取 ID,也可以向服务器发送一些文本。但我想征求您的意见,让这两者协同工作的最佳解决方案是什么。

目前我在两个类中使用 TCP/IP 和串行使用。我从主类创建两个类的对象并启动一个从串行端口读取数据的线程。

我应该尝试这样的事情吗?

在类里面,我只会创建串行使用对象并调用处理读取的线程。在该读取线程内,我将调用一个新线程,该线程将打开 TCP/IP 连接并发送它从串口接收到的数据。

另一种类似的方法会从主类打开两个连接,但它会从串行端口接收线程启动 TCP/IP 发送线程(通过已经打开的连接)。

我在线程方面没有太多经验,所以我向其他软件开发人员寻求帮助。谢谢! (如果这有帮助,我可以在此处粘贴部分代码)。

更新:

这就是提示,我会仔细研究您的建议。我想这是个好主意,但正如我所说,我在线程方面没有太多经验。如果我在这些类中创建单独的线程并且它们都使用相同的对象,假设类 Message 的对象,我会在 COM 处理线程中创建新对象,而 TCP/IP 处理线程将使用该对象,它会工作吗通过 TCP/IP 从它发送数据?我可以像使用 List 一样创建 Message 类的对象队列吗?另外,我如何将在类中的一个线程中创建的对象队列传递给另一个线程

最佳答案

将两种不同的通信方法抽象到单独的类中是一个很好的设计,所以我会坚持这样做。

与其在主类中处理线程,不如让每个通信类处理自己的线程管理,并通过共享的 threadsafe queue 在它们之间进行通信.

然后您的串行通信对象可以处理与串行端口的通信、读取数据并将该数据放入队列中。 TCP 通信对象可以处理连接、重新连接、断开连接等...并从队列中获取数据并将其发送到套接字并在网络上发送出去。

您的主类可以只创建队列和传入同一个队列实例的两个通信对象。

关于发送从串行端口接收的数据的 C# TCP/IP 客户端 - 建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19139247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com