Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从LAN读取8位数据并在GUI中显示_C#_Vb.net_Sockets_Lan - Fatal编程技术网

C# 从LAN读取8位数据并在GUI中显示

C# 从LAN读取8位数据并在GUI中显示,c#,vb.net,sockets,lan,C#,Vb.net,Sockets,Lan,你好,我是一名电气工程专业的学生,我正在设计一种设备,它记录数值,然后将其作为简单的8位数据发送到LAN端口。我必须用时间戳检索这些数据,并将其显示在GUI中 发送的数据将采用以下格式: (MSB) (LSB) [start bit | 3 | 4 | 2 | 7 | 2 | 4 | 6 | stop bit] 并将在GUI中显示为: [Comput

你好,我是一名电气工程专业的学生,我正在设计一种设备,它记录数值,然后将其作为简单的8位数据发送到LAN端口。我必须用时间戳检索这些数据,并将其显示在GUI中

发送的数据将采用以下格式:

                (MSB)                                   (LSB)
             [start bit | 3 | 4 | 2 | 7 | 2 | 4 | 6 | stop bit]
并将在GUI中显示为:

          [Computer Time]   34.2 Volts   7.2 Amperes   46 degrees

请指导我如何使用C#或VB.Net从LAN端口访问信息,如果可能,请发布socket编程,因为作为一名电气工程师,编程并不是我的专长。谢谢。

根据经验,我为我的大学论文用C#编写了一个数据包分析引擎。您将面临的问题是托管.NET不允许您捕获IP级别以下的数据,但是您可以使用一些非托管API来访问较低级别的数据包数据。例如,SharpPCap将允许您在数据层(OSI模型中的第2层)捕获数据包。据我所知,在.NET中没有任何东西允许您直接向LAN适配器读/写字节,即使您可以,任何PC都可能会将其作为错误的位/字节丢弃

我给你的建议是:

  • 了解OSI模型以及数据包封装的工作原理

  • 了解MAC和IP寻址的工作原理

  • 考虑在什么级别可以传输数据,以及如何将数据从代码序列化为可传输的内容。(反之亦然)


  • 嗯,这看起来更像是一个串行端口的工作,或者甚至是USB,在这里你可以更好地控制发送/接收的数据。基于局域网的系统是基于标准的,因此为了让您的数据能够被接受,您需要在某种程度上学习标准,或者使用现成的实现。

    根据经验,我用C语言为我的大学论文编写了一个包分析引擎。您将面临的问题是托管.NET不允许您捕获IP级别以下的数据,但是您可以使用一些非托管API来访问较低级别的数据包数据。例如,SharpPCap将允许您在数据层(OSI模型中的第2层)捕获数据包。据我所知,在.NET中没有任何东西允许您直接向LAN适配器读/写字节,即使您可以,任何PC都可能会将其作为错误的位/字节丢弃

    我给你的建议是:

  • 了解OSI模型以及数据包封装的工作原理

  • 了解MAC和IP寻址的工作原理

  • 考虑在什么级别可以传输数据,以及如何将数据从代码序列化为可传输的内容。(反之亦然)


  • 嗯,这看起来更像是一个串行端口的工作,或者甚至是USB,在这里你可以更好地控制发送/接收的数据。基于LAN的系统是基于标准的,因此,为了使您的数据能够被接受,您需要在某种程度上了解标准,或者使用现成的实现。

    您如何发送数据?TCP?UDP?作为电气工程专业的学生,你应该了解ISO/OSI模型,然后重申你的问题。如果你想知道,数据将通过UART发送。UART与串行数据相关。您要求的是与局域网相关的东西,即以太网。他们不是同一个人。请您明确说明您是如何发送数据的,以及使用何种介质。您似乎在使用术语“位”,而您的意思是“字节”,数据位不能是“|3 | 4 | 2 | 7 | 2 | 4 | 6 |”,您是如何发送数据的?TCP?UDP?作为电气工程专业的学生,你应该了解ISO/OSI模型,然后重申你的问题。如果你想知道,数据将通过UART发送。UART与串行数据相关。您要求的是与局域网相关的东西,即以太网。他们不是同一个人。请您明确说明您是如何发送数据的,以及使用何种介质。您似乎在使用“位”一词,而您的意思是“字节”,数据位不能是“|3 | 4 | 2 | 7 | 2 | 4 | 6 |”+1”作为建议,但我衷心建议OP不要尝试低于TCP/UDP级别-无需这样做。取而代之的是,根据您的需要,尝试在TCP或UDP之上实现更高级别的协议。@tomfanning…同意,在局域网上实现低级别协议不是一个好主意,但有时是必要的。我的数据包分析引擎级别如此之低的原因是,我可以检测到像ARP和DHCP之类的东西向我的路由器飞去……这是我年轻时就开始使用的我完全可以使用现成的构建实现。由于来自设备的数据是通过AVR微控制器发送的,我认为不会涉及任何IP和MAC。我在哪里可以获得这些现成的构建实现?@Asher,谷歌“sharpcap”。这就是我用来允许在OSI模型的以太网/数据层进行数据包嗅探的地方。您还需要WinPCap才能使用+1获得建议,但对于OP,我衷心建议您甚至不要尝试低于TCP/UDP级别-无需这样做。取而代之的是,根据您的需要,尝试在TCP或UDP之上实现更高级别的协议。@tomfanning…同意,在局域网上实现低级别协议不是一个好主意,但有时是必要的。我的数据包分析引擎级别如此之低的原因是,我可以检测到像ARP和DHCP之类的东西向我的路由器飞去……这是我年轻时就开始使用的我完全可以使用现成的构建实现。由于来自设备的数据是通过AVR微控制器发送的,我认为不会涉及任何IP和MAC。我在哪里可以获得这些现成的构建实现?@Asher,谷歌“sharpcap”。这就是我用来允许在OSI模型的以太网/数据层进行数据包嗅探的地方。您还需要WinPCap才能使其正常工作