EtherNet/IP开发:JAVA、C#和C++开发源代码

这篇具有很好参考价值的文章主要介绍了EtherNet/IP开发:JAVA、C#和C++开发源代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

示例使用VS2010开发EtherNet/IP

开发语言使用C++

为什么选择C++呢?

C++开发出来的程序,提供C标准API后,将可以提供给Dlphi、Labview、VB、QT、C#、C\C++、C#、Java等几乎所有编程语言使用。

效率问题

① 在底层我们将采用socket和多线程方式开发,在数据处理方面使用指针为主。

② EtherNet/IP在设计之初就是为高效,低延迟而设定

③ 采用最基础的C++ 标准函数,单次效率可以做到1ms以内。

源代码下载和应用:

www.jngbus.com

编程开始:

① 创建项目

使用dll库方式,为后续提供模块给各种程序调用准备

我们开发过程只采用C98和C11标准,socket、STL库,在移植到嵌入式、linux时候,只需改为gcc、g++编译和少量API修改即可。

EtherNet/IP开发:JAVA、C#和C++开发源代码,tcp/ip,c#,c++

创建项目

EtherNet/IP开发:JAVA、C#和C++开发源代码,tcp/ip,c#,c++

选择共享型的DLL库

② 编写数据结构体

EtherNet/IP开发:JAVA、C#和C++开发源代码,tcp/ip,c#,c++

// 协议头数据
struct EncapsulationHeader 
{
	int nCommand;				// 命令
	int nLength;				// 成都
	int nSessionID;				// 会话ID Session Handle
	int nStatus;				// 状态数据
	__int64 nSenderContext;		// 上下文,描述相关信息
	int nOptions;				// 选项

	EncapsulationHeader()
	{
		memset(this, 0, sizeof(EncapsulationHeader));
	}
};

③ 添加socket网络通讯

由于我们是作为client,所以开发过程中不需要做server

等后续做EtherNet/IP Server时候,再讲解

创建UDP和TCP俩种处理场景,将会使用到

函数socket();connect();send()和recv()等这几个函数

在recv时候采用多线程处理即可。

往下就不继续讲述了。估计需要2、3天时间把软件写出来和测试了。文章来源地址https://www.toymoban.com/news/detail-810772.html

到了这里,关于EtherNet/IP开发:JAVA、C#和C++开发源代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网络程序设计:TCP/IP协议栈源代码分析

    从调用栈中可以看到inet_init被调用的过程 start_kernel函数位于 init/main.c中,是内核的入口位置, 它在系统引导过程中被调用。执行该函数后,内核初始化各种子系统,包括调度器、内存管理、文件系统等。在函数最后,会调用 rest_init 函数来继续剩余的初始化工作。 在rest_in

    2024年01月15日
    浏览(54)
  • 网络程序设计实验:TCP/IP协议栈源代码分析

    深入理解TCP/IP协议栈的源代码结构和功能,探究其与上层套接口和下层数据链路层的关联方式。 分析TCP的三次握手过程,理解其状态转换和数据传输机制。 掌握send和recv操作在TCP/IP协议栈中的执行路径,探究其与上层应用程序的交互方式。 了解路由表、ARP缓存以及IP到MAC地址

    2024年02月03日
    浏览(64)
  • 网络程序设计实验-TCP/IP协议栈源代码分析

    ​ inet_init代码如下: 调用inet_init的过程中,涉及到的函数如下: 1. start_kernel: start_kernel 是Linux内核的启动函数,定义在 init/main.c 文件中。 在启动过程中,首先执行 start_kernel ,这个函数负责进行内核的初始化工作。 2. rest_init: 在 start_kernel 中,会调用 rest_init 函数,该函数的

    2024年02月03日
    浏览(70)
  • Linux内核中的TCP/IP协议栈源代码分析

    目录 背景知识-Linux源码简介 TCP/IP协议栈相关问题 inet_init是如何被调用的?从start_kernel到inet_init调用路径 1.start_kernel(): 2.inet_init() : 3.fs_initcall() 跟踪分析TCP/IP协议栈如何将自己与上层套接口与下层数据链路层关联起来的? TCP的三次握手源代码跟踪分析,跟踪找出设置和发

    2024年02月02日
    浏览(68)
  • 网络程序设计专题实验:TCP/IP协议栈源代码分析

    inet_init是如何被调用的?从start_kernel到inet_init调用路径 跟踪分析TCP/IP协议栈如何将自己与上层套接口与下层数据链路层关联起来的? TCP的三次握手源代码跟踪分析,跟踪找出设置和发送SYN/ACK的位置,以及状态转换的位置 send在TCP/IP协议栈中的执行路径 recv在TCP/IP协议栈中的执

    2024年02月02日
    浏览(68)
  • TCP/IP协议栈源代码分析:GDB调试环境搭建及源码分析

    Ubuntu 22.04 LTS Linux-5.4.34 busybox-1.36.0 2.1 安装相关工具 axel是一款多线程下载工具,用于下载Linux内核源代码及其他大文件;build-essential软件包里面包含了很多开发必要的软件工具,比如make、gcc等;QEMU是一种通用的开源计算机仿真器和虚拟器,为自己编译构建的Linux系统运行提供

    2024年02月03日
    浏览(60)
  • C#与VisionPro联合开发实例教程:详细步骤与源代码

    C#与VisionPro联合开发实例教程:详细步骤与源代码 在本教程中,我们将深入介绍如何使用C#编程语言与VisionPro图像处理软件进行联合开发。我们将通过一个完整的项目示例来演示此过程,包括详细的步骤和相应的源代码。 步骤1:环境准备 首先,确保你已经安装了以下软件:

    2024年02月06日
    浏览(56)
  • 【Java】智慧工地管理系统源代码,支持二次开发,SaaS模式

    智慧工地系统围绕工程现场人、机、料、法、环及施工过程中质量、安全、进度、成本等各项数据满足工地多角色、多视角的有效监管,实现工程建设管理的降本增效。 1、施工现场管理难:安全事故频发,人工巡检难度大,质量进度协同难等问题仍没有得到解决; 2.人员管理

    2024年02月04日
    浏览(43)
  • C# 关于源代码生成

    步骤1: 首先建立一个控制台程序 SourceGeneratorDome1 选择版本.net7 代码如下: 建立类文 件  GreetingUsePartialClassm 这是一个类分布文件。 看清楚哟。这里只是定义了一个分布类和分布方法。具体实现方法通过源代码生成 步骤2:建立一个源代码生成项目 但是类型选择. netstanda

    2024年02月11日
    浏览(61)
  • C# 源代码生成器

    源生成器 是由 .NET Compiler Platform(“Roslyn”) SDK 附带。 通过源生成器,C# 开发人员可以在编译用户代码时检查用户代码。 生成器可以动态创建新的 C# 源文件,这些文件将添加到用户的编译中。 这样,代码可以在编译期间运行。 它会检查你的程序以生成与其余代码一起编译

    2024年02月04日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包