资源简介
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个文件信息
相关资源
- mfc 调用redis
- socket客户端.c
- socket服务端.c
- MFC视频播放器源码(支持avi/wma/mp3等格
- mfc绘图大全(画直线、矩形、椭圆)
- MFC控件重绘
- hook,捕获所有案件,查找所有窗口,
- (学习)VS2010之MFC入门到精通教程
- MFC文档_视图_框架_模板结构体系深入
- TCP服务端和TCP客户端通讯
- 简单员工管理系统(适合初学MFC)
- socket通讯c++源码(客户端+服务端)
- MFC五子棋游戏
- MFC UDP编程
- MFC的异步网络通讯应用程序
- C++MFC模块讲解,黑发程序员课程整理
- c++开发http服务端+客户端
- 一个简单而强大的基于MFC的web server源
- 基于MFC的VC++仿QQ浏览器源码(雏形)
- MFCaccess.rar
- VC++MFC课程设计的学生成绩管理系统
- MFC 日历控件 万年历 Calendar自绘
- CrystalDiskInfo-HDD/SSD硬盘信息,SMART信息
- MFC自定义界面HUI,高效简单,含详细
- 仿射密码-Affine cipher
- c++MFC车牌自动识别定位,只能定位和
- mfc+sql 酒店客房管理系统
- 基于图割的图像分割OpenCV+MFC实现
- MFC绘制Bezier曲线B样条曲线曲线拟合
- MFC坦克大战
评论
共有 条评论