资源简介

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个文件信息

评论

共有 条评论