使用TCP从COM端口读取数据

时间:2011-12-15 11:46:27

标签: c# .net tcp serial-port

我使用Moxa Serial Hub集中了一些使用RS-232 / NMEA协议进行通信的设备。

串行集线器作为TCP客户端工作,每次接收数据时都会将其传输到我机器中已知的IP /端口。

schema

问题是我没有正确接收数据(我认为我所要做的就是创建一个接受连接的TCP服务器,并将数据作为字节读取,但这只会给我一些奇怪的字符)

我收到了字节...但是当转换为文本时...它只是一些奇怪的字符,我在这个转换中缺少一些细节。 到目前为止,我已经尝试过:

byte[] b = new byte[1000];
int k = s.Receive(b);
Console.WriteLine(Encoding.UTF8.GetString(b, 0, 1000));
Console.WriteLine(Encoding.ASCII.GetString(b));
for (int i = 0; i < k; i++)
   Console.Write(Convert.ToChar(b[i])); 

所有这三种方法都写了相同的文字......

在这种情况下,有人知道如何正确读取数据吗?

1 个答案:

答案 0 :(得分:1)

此评论提供了问题的解决方案:

  

所以你实际上从moxa hub获得连接请求并接收(错误)数据?那么它可能与moxa设备上的错误串口设置有关(可能是错误的波特率) - Jan 2小时前

确实,波特率是错误的。