国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

EtherNet/IP開發(fā):C++搭建基礎模塊,EtherNet/IP源代碼

這篇具有很好參考價值的文章主要介紹了EtherNet/IP開發(fā):C++搭建基礎模塊,EtherNet/IP源代碼。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

這里是CIP資料的協(xié)議層級圖,講解協(xié)議構造。

ODVA(www.ODVA.org)成立于1995年,是一個全球性協(xié)會,其成員包括世界領先的自動化公司。結合其成員的支持,ODVA的使命是在工業(yè)自動化中推進開放、可互操作的信息和通信技術。成員團體的基礎是其在制定標準和促進通過《共同工業(yè)議定書》方面的主要共同利益?), ODVA的媒體獨立網(wǎng)絡協(xié)議,以及CIP–EtherNet/IP的網(wǎng)絡適配?, DeviceNet?, CompoNet? 和ControlNet?. ODVA管理這些技術,并在一個通用結構中開發(fā)和分發(fā)這四個網(wǎng)絡的規(guī)范,以幫助確保一致性和準確性。下圖說明了由四個網(wǎng)絡組成的庫的組織結構。

中文總線資料和方案?www.jngbus.com

廣州金南瓜科技

EtherNet/IP開發(fā):C++搭建基礎模塊,EtherNet/IP源代碼,tcp/ip,服務器,EtherNet/IP,EtherNetIP

我們可以看到,其中一個EtherNet/IP是基于TCP/UDP之上。

那么我們就可以理解為,基于socket應用之上就可以了。

如果只是純應用角度去開發(fā)EtherNet/IP,可以借助一些成熟的socket庫。奈何我們早期學C++的人,沒有那么多成熟模塊,都是靠自己擼出來。

把TCP/IP通訊單獨做成一個dll

① 目的是后續(xù)我們講解開發(fā)modbus tcp、profinet等這些以太網(wǎng)協(xié)議時候,就不需要每種協(xié)議都單獨寫一次TCP/UDP通訊了

EtherNet/IP開發(fā):C++搭建基礎模塊,EtherNet/IP源代碼,tcp/ip,服務器,EtherNet/IP,EtherNetIP

頭文件代碼


// 用于TCP/IP通訊
class CTcpCommunication : public CTcpCommExport
{
public:
?? ?CTcpCommunication();
?? ?virtual ~CTcpCommunication();

?? ?// 釋放
?? ?void Release();?? ?

?? ?void SetCallback(OnCommDataHandle* pDataCallback, OnCommEventNotify* pEventCallback, void* pObject);
?? ?CResult Connect(const char* pIP, __int32 nPort);?? ??? ?// 連接
?? ?void Disconnect();?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?// 關閉連接
?? ?CResult SendData(const char* pData, __int32 nSize);?? ??? ?// 數(shù)據(jù)發(fā)讀
?? ?void SetLanguage(__int32 nType);

protected:

?? ?// 數(shù)據(jù)接收?? ?
private:
?? ?
?? ?void InitSockWSA();
?? ?void ReleaseSockWSA();

?? ?// 接收數(shù)據(jù)線程
?? ?void CreateRecvThread();?? ??? ?// 創(chuàng)建接收線程
?? ?void ExitRecvThread();?? ??? ??? ?// 退出接收線程
?? ?static void RunRecvThread(void* lp);
?? ?void RecvHandle();
?? ?bool IsExitThread();
?? ?void OneRecvData();?? ??? ??? ??? ?// 一次接收數(shù)據(jù)
?? ?void StartRecvData();?? ??? ??? ?// 開始接收數(shù)據(jù)
?? ?void StopRecvData();?? ??? ??? ?
?? ?void CloseConnect();?? ??? ??? ?// 關閉通訊

private:

?? ?CData m_pData;

};

② socket處理很簡單,其實就是圍繞著收發(fā)

connect和send、recv

至于性能問題,就是如何優(yōu)化在這處理和同步問題了。

程序穩(wěn)定可靠需要靠自身的積累了。

EtherNet/IP開發(fā):C++搭建基礎模塊,EtherNet/IP源代碼,tcp/ip,服務器,EtherNet/IP,EtherNetIP

建立通訊代碼。

	if(m_hSock == INVALID_SOCKET)
	{
		m_hSock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
		if(m_hSock != INVALID_SOCKET)
		{		
			if(connect(m_hSock, (struct sockaddr*)&m_pSA, sizeof(m_pSA)) < 0)
			{					
				closesocket(m_hSock);
				m_hSock = INVALID_SOCKET;	

				// MC TCP連接失敗,請查看網(wǎng)絡是否通訊上、或者端口問題
				return CResult(TCP_SOCKET_CONNECT_FAIL, GetLanguage(TCP_SOCKET_CONNECT_FAIL));			
			}	
		}
		else
		{
			return CResult(TCP_SOCKET_CREATE_FAIL,  GetLanguage(TCP_SOCKET_CREATE_FAIL));				
		}
	}

	return CResult();

發(fā)送數(shù)據(jù)

EtherNet/IP開發(fā):C++搭建基礎模塊,EtherNet/IP源代碼,tcp/ip,服務器,EtherNet/IP,EtherNetIP文章來源地址http://www.zghlxwxcb.cn/news/detail-814078.html

到了這里,關于EtherNet/IP開發(fā):C++搭建基礎模塊,EtherNet/IP源代碼的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 抖音矩陣系統(tǒng)源代碼開發(fā)部署--源碼搭建

    抖音矩陣系統(tǒng)源代碼開發(fā)部署--源碼搭建

    抖音矩陣系統(tǒng)是一個具有強大功能的開放性平臺,通過數(shù)據(jù)挖掘技術能夠實現(xiàn)精準的用戶畫像和個性化推薦,這也是抖音成為國內最受歡迎的短視頻平臺之一的原因之一。矩陣系統(tǒng)的開發(fā)需要大量的技術支持和數(shù)據(jù)分析,同時也需要綜合運用大數(shù)據(jù)、機器學習、人工智能等相

    2024年02月11日
    瀏覽(92)
  • 抖音seo矩陣系統(tǒng)源代碼開發(fā)搭建技術分享

    抖音seo矩陣系統(tǒng)源代碼開發(fā)搭建技術分享

    抖音SEO矩陣系統(tǒng)是一個較為復雜的系統(tǒng),其開發(fā)和搭建需要掌握一定的技術。以下是一些技術分享: 抖音SEO矩陣系統(tǒng)的源代碼可以使用JAVA、Python、PHP等多種語言進行開發(fā)。其中,JAVA語言的應用較為廣泛,因為JAVA語言有良好的跨平臺性和安全性。 在開發(fā)抖音SEO矩陣系統(tǒng)時,

    2024年02月14日
    瀏覽(29)
  • 抖音seo源碼-源代碼開發(fā)搭建-開源部署(不加密)

    抖音seo源碼-源代碼開發(fā)搭建-開源部署(不加密)

    抖音SEO矩陣系統(tǒng)源碼開發(fā)功能模型是指在抖音平臺上提高視頻搜索排名的一種算法模型。該功能模型包括多個部分,如內容優(yōu)化、用戶交互、社交化推廣等,通過對這些因素的優(yōu)化和提升,達到提高視頻搜索排名的目的。具體實現(xiàn)包括使用、標簽等優(yōu)化內容,提高用戶

    2024年02月09日
    瀏覽(25)
  • 抖音seo源碼-源代碼開發(fā)搭建-開源部署操作日志

    抖音seo源碼-源代碼開發(fā)搭建-開源部署操作日志

    ? 抖音seo源碼開發(fā)是一項非常重要的技術,在抖音上,有很多視頻,如果你想讓自己的視頻脫穎而出,那么就需要優(yōu)化自己的seo源碼。不過,為了保護用戶的隱私,抖音并不公開其seo算法的細節(jié),因此需要開發(fā)者自己探索。抖音SEO矩陣系統(tǒng)源碼開發(fā)功能模型是指在抖音平臺上

    2024年02月13日
    瀏覽(23)
  • ASP.NET模塊化動態(tài)電子商務網(wǎng)站的開發(fā)(源代碼+論文+開題報告+外文翻譯)

    本文對用ASP.NET和ACCESS開發(fā)中小型電子商務網(wǎng)站的分析、設計、實施做了詳盡的闡述。系統(tǒng)采用模塊化設計方法,根據(jù)程序的應用與維護的易用性,將系統(tǒng)各個部分分置于不同的模塊當中,方便了程序的擴展與維護。 論文首先對當今電子商務網(wǎng)站的應用進行了現(xiàn)狀分析,分析

    2024年02月10日
    瀏覽(27)
  • TCP/IP協(xié)議棧源代碼分析

    在 Linux 內核啟動過程中,inet_init 是在網(wǎng)絡子系統(tǒng)初始化的一部分,負責初始化 TCP/IP 協(xié)議棧。下面是從 start_kernel 到 inet_init 的調用路徑: start_kernel: start_kernel() 是 Linux 內核啟動的入口函數(shù),位于 init/main.c 文件中。 kernel_init: kernel_init() 在 start_kernel 中被調用,它位于 init/ma

    2024年02月03日
    瀏覽(73)
  • 網(wǎng)絡程序設計:TCP/IP協(xié)議棧源代碼分析

    從調用棧中可以看到inet_init被調用的過程 start_kernel函數(shù)位于 init/main.c中,是內核的入口位置, 它在系統(tǒng)引導過程中被調用。執(zhí)行該函數(shù)后,內核初始化各種子系統(tǒng),包括調度器、內存管理、文件系統(tǒng)等。在函數(shù)最后,會調用 rest_init 函數(shù)來繼續(xù)剩余的初始化工作。 在rest_in

    2024年01月15日
    瀏覽(24)
  • 網(wǎng)絡程序設計實驗-TCP/IP協(xié)議棧源代碼分析

    ? inet_init代碼如下: 調用inet_init的過程中,涉及到的函數(shù)如下: 1. start_kernel: start_kernel 是Linux內核的啟動函數(shù),定義在 init/main.c 文件中。 在啟動過程中,首先執(zhí)行 start_kernel ,這個函數(shù)負責進行內核的初始化工作。 2. rest_init: 在 start_kernel 中,會調用 rest_init 函數(shù),該函數(shù)的

    2024年02月03日
    瀏覽(100)
  • 網(wǎng)絡程序設計實驗:TCP/IP協(xié)議棧源代碼分析

    深入理解TCP/IP協(xié)議棧的源代碼結構和功能,探究其與上層套接口和下層數(shù)據(jù)鏈路層的關聯(lián)方式。 分析TCP的三次握手過程,理解其狀態(tài)轉換和數(shù)據(jù)傳輸機制。 掌握send和recv操作在TCP/IP協(xié)議棧中的執(zhí)行路徑,探究其與上層應用程序的交互方式。 了解路由表、ARP緩存以及IP到MAC地址

    2024年02月03日
    瀏覽(123)
  • Linux內核中的TCP/IP協(xié)議棧源代碼分析

    Linux內核中的TCP/IP協(xié)議棧源代碼分析

    目錄 背景知識-Linux源碼簡介 TCP/IP協(xié)議棧相關問題 inet_init是如何被調用的?從start_kernel到inet_init調用路徑 1.start_kernel(): 2.inet_init()?: 3.fs_initcall() 跟蹤分析TCP/IP協(xié)議棧如何將自己與上層套接口與下層數(shù)據(jù)鏈路層關聯(lián)起來的? TCP的三次握手源代碼跟蹤分析,跟蹤找出設置和發(fā)

    2024年02月02日
    瀏覽(51)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包