資源簡介
V1.1. 基于HJ212-2017協議開發,項目基于靜態庫編譯,可以直接運行,可執行程序路徑:
HJ212TCPServerMFC\Debug\HJ212TCPServerMFC.exe
基于VS2012開發,包含完整源代碼,可以自主再開發;
1、TCP Socket服務端,支持多個客戶端連接,MFC多線程異步收發,防阻塞;
收到客戶端的報文自動回碼確認,判斷Flag的bit0判斷是否需要回碼;
2、支持服務端向選中單個或者全部客戶端發數據,進行測試;
3、支持記錄報文log,記錄所有收發報文,可以用來長時間測試HJ212協議設備。
4、支持自己編輯數據區(QN=XX~CP=XX..&&
代碼片段和文件信息
//?s1.cpp?:?定義控制臺應用程序的入口點。
//
#include?“stdafx.h“
????
//Server.cpp
#include?
#include?
#include?
#pragma?comment(lib“ws2_32.lib“)
#define?DPRINTH(X)??????????????printf(X)
struct?ThrdParameter
{
????SOCKET?clientSock;
????
????struct?sockaddr_in?clientAdd;
};
/****************************************************************************************
函?數:?CRC16_Checkout
描?述:?CRC16?循環冗余校驗算法。
參?數?一:?*puchMsg:需要校驗的字符串指針
參?數?二:?usDataLen:要校驗的字符串長度
返?回?值:?返回?CRC16?校驗碼????
****************************************************************************************/
unsigned?int?CRC16_Checkout(unsigned?char?*puchMsg?unsigned?int?usDataLen)
{
????unsigned?int?ijcrc_regcheck;
????crc_reg?=?0xFFFF;
????for(i=0;i ????{
????????crc_reg?=?(crc_reg>>8)?^?puchMsg[i];
????????for(j=0;j<8;j++)
????????{
????????????check?=?crc_reg?&?0x0001;
????????????crc_reg?>>=?1;
????????????if(check==0x0001)
????????????{
????????????????crc_reg?^=?0xA001;
????????????}
????????}
????}
????return?crc_reg;
}
//?獲得環保需要的特定字符
//?返回大于等于0,標識找到,<0沒有找到;?取spe1buffer?~spe2buffer之間的字符串加字符串結束符0
int?GetNeedCode(char?*inbuffint?inbufferlenchar?*spe1bufferchar?*spe2bufferchar?*?findbufferint?maxlen)
{
????int?findlen?=?0;
????if(inbuff?==NULL?||spe1buffer?==NULL?||spe2buffer?==NULL?||findbuffer?==NULL?||inbufferlen?<=0)
????{
????????return?-1;
????}
????char?*tmpPret=inbuff;
????char?*Pret=strstr(tmpPret?spe1buffer);
????if(Pret==NULL)
????{
????????return?-1;
????}
????char?*sPret=strstr(Pret+strlen(spe1buffer)?spe2buffer);
????if(sPret==NULL)
????{
????????return?-1;
????}
????//找到需要的字符串長度
????findlen?=?sPret-Pret-strlen(spe1buffer);
????if(findlen<0)
????{
????????return?-1;
????}
????if(findlen>maxlen)
????{
????????return?-1;
????}
????else
????{
????????//找到需要的字符,進行拷貝
????????if?(findlen?>?0)
????????{
????????????memcpy(findbuffer?Pret+strlen(spe1buffer)?findlen);
????????????findbuffer[findlen]?=?‘\0‘;
????????}
????????return?findlen;
????}
????return?-1;
}
/****************************************************************************************
*?函數名稱:?CheckCRC16isOK
*?函數功能:?檢查CRC16是否正常
*?輸入參數:?pframeInfo?接收212協議幀信息
*?輸出參數:?無
*?返?回?值:?>=0?正常;0?錯誤
****************************************************************************************/
int?CheckCRC16isOK(uint8?*inbuf?uint16?inbuflen)
{
????uint16?crc?=?0;
????uint16?HJ212CRC16?=?0;
????uint16?dataLen?=?0;
????uint8??buf[10]?=?{0};
????int????i?=0;
????if?((inbuflen?10)||(inbuf?==?NULL))
????{
????????return?0;
????}
????//?提取報文數據段長度
????memcpy(buf&inbuf[2]4);
????dataLen?=?atoi((const?char*)buf);
????//?提取報文中CRC16
????memcpy(buf?inbuf+inbuflen-6?4);
????buf[4]?=?0;
????sscanf_s((const?char*)buf?“%4x“?&HJ212CRC16);
????//?計算CRC16
????crc?=?(uint16)CRC16_Checkout((uint8?*)&inbuf[6]?dataLen);
????if?(crc?!
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????9289216??2020-06-04?23:19??HJ212TCPServerMFC\Debug\HJ212TCPServerMFC.exe
?????文件??????10597??2020-03-18?22:21??HJ212TCPServerMFC\TCPServer\HJ212.cpp
????I.A....??????8098??2020-05-28?22:40??HJ212TCPServerMFC\TCPServer\HJ212.h
?????文件????????922??2020-01-22?11:32??HJ212TCPServerMFC\TCPServer\NSocket.cpp
????I.A....???????558??2020-05-07?21:34??HJ212TCPServerMFC\TCPServer\NSocket.h
?????文件???????3910??2020-01-22?16:16??HJ212TCPServerMFC\TCPServer\ReadMe.txt
?????文件??????67777??2012-01-11?01:22??HJ212TCPServerMFC\TCPServer\res\TCPServer.ico
?????文件????????674??2015-07-15?14:31??HJ212TCPServerMFC\TCPServer\res\TCPServer.rc2
????I.A....??????2706??2020-05-28?22:40??HJ212TCPServerMFC\TCPServer\resource.h
?????文件????????142??2015-07-15?14:31??HJ212TCPServerMFC\TCPServer\stdafx.cpp
?????文件???????1804??2020-01-20?23:19??HJ212TCPServerMFC\TCPServer\stdafx.h
?????文件????????234??2015-07-15?14:31??HJ212TCPServerMFC\TCPServer\targetver.h
?????文件??????91592??2020-05-07?22:21??HJ212TCPServerMFC\TCPServer\TCPServer.aps
?????文件???????2708??2020-01-22?11:34??HJ212TCPServerMFC\TCPServer\TCPServer.cpp
????I.A....???????478??2020-05-07?21:34??HJ212TCPServerMFC\TCPServer\TCPServer.h
????I.A....?????11538??2020-05-28?22:40??HJ212TCPServerMFC\TCPServer\TCPServer.rc
????I.A....??????6542??2020-05-28?22:40??HJ212TCPServerMFC\TCPServer\TCPServer.vcxproj
????I.A....??????2422??2020-05-28?22:40??HJ212TCPServerMFC\TCPServer\TCPServer.vcxproj.filters
?????文件????????164??2015-07-15?15:03??HJ212TCPServerMFC\TCPServer\TCPServer.vcxproj.user
????I.A....?????33737??2020-06-04?23:18??HJ212TCPServerMFC\TCPServer\TCPServerDlg.cpp
????I.A....??????2335??2020-05-28?22:40??HJ212TCPServerMFC\TCPServer\TCPServerDlg.h
?????文件????????894??2015-07-15?14:31??HJ212TCPServerMFC\TCPServer.sln
????..A..H.?????72704??2020-06-04?23:22??HJ212TCPServerMFC\TCPServer.v11.suo
?????文件????????898??2020-06-04?23:36??HJ212TCPServerMFC\說明.txt
?????目錄??????????0??2020-04-28?22:06??HJ212TCPServerMFC\TCPServer\res
?????目錄??????????0??2020-06-04?23:24??HJ212TCPServerMFC\Debug
?????目錄??????????0??2020-06-04?23:24??HJ212TCPServerMFC\TCPServer
?????目錄??????????0??2020-06-04?23:28??HJ212TCPServerMFC
-----------?---------??----------?-----??----
??????????????9612650????????????????????28
............此處省略1個文件信息
評論
共有 條評論