首页 > 其他分享 >CH392作服务器TCP Server应用配置使用

CH392作服务器TCP Server应用配置使用

时间:2024-02-04 15:36:22浏览次数:31  
标签:socket CH392Inf CH392 TCP Server SockInf SourPort Socket

  CH392工作在TCP Server模式时,参考手册说明需要打开监听Socket端口,也要设置数据连接Socket端口,注意数据连接Socket的源端口和监听Socket的源端口一致。

   配置TCP Server Socket数代码处理如下:

void InitCH392InfParam(void)
{
    memset(&CH392Inf, 0, sizeof(CH392Inf));                          /* Clear all CH392Inf to zero */
    memcpy(CH392Inf.IPAddr, CH392IPAddr, sizeof(CH392IPAddr));       /* Enter the IP address in the CH392Inf file */
    memcpy(CH392Inf.GWIPAddr, CH392GWIPAddr, sizeof(CH392GWIPAddr)); /* Enter the gateway IP address in the CH392Inf file */
    memcpy(CH392Inf.MASKAddr, CH392IPMask, sizeof(CH392IPMask));     /* Enter the mask IP address in the CH392Inf file */
}

/**********************************************************************************
 * Function Name  : InitSocketParam
 * Description    : Initialize Socket
 * Input          : None
 * Output         : None
 * Return         : None
 **********************************************************************************/
void InitSocketParam(void)
{
    memset(&SockInf[0], 0, sizeof(SockInf[0])); /* Clear all SockInf[0] to zero*/
    SockInf[0].SourPort = Socket0SourPort;      /* SourPort */
    SockInf[0].ProtoType = PROTO_TYPE_TCP;      /* TCP mode*/

    memset(&SockInf[1], 0, sizeof(SockInf[1])); /* Clear all SockInf[1] to zero*/
    SockInf[1].SourPort = Socket0SourPort;      /* SourPort */
    SockInf[1].ProtoType = PROTO_TYPE_TCP;      /* TCP mode*/

    memset(&SockInf[2], 0, sizeof(SockInf[1])); /* Clear all SockInf[1] to zero*/
    SockInf[2].SourPort = Socket0SourPort;      /* SourPort */
    SockInf[2].ProtoType = PROTO_TYPE_TCP;      /* TCP mode*/
}

/**********************************************************************************
 * Function Name  : CH392SocketInitOpen
 * Description    : Set CH392 socket parameters to initialize and open the socket
 * Input          : None
 * Output         : None
 * Return         : None
 **********************************************************************************/
void CH392SocketInitOpen(void)
{
    UINT8 i;

    CH392CMDSetSocketProtType(0, SockInf[0].ProtoType); /* set socket 0 type */
    CH392CMDSetSocketSourPort(0, SockInf[0].SourPort);  /* set socket 0 sour port */
    i = CH392CMDOpenSocket(0);                          /* open socket 0 */
    mStopIfError(i);                                    /* check the result */
    i = CH392CMDTCPListen(0);
    mStopIfError(i);

    CH392CMDSetSocketProtType(1, SockInf[1].ProtoType); /* set socket 1 type */
    CH392CMDSetSocketSourPort(1, SockInf[1].SourPort);  /* set socket 1 sour port */

    CH392CMDSetSocketProtType(2, SockInf[2].ProtoType); /* set socket 1 type */
    CH392CMDSetSocketSourPort(2, SockInf[2].SourPort);  /* set socket 1 sour port */
}

  注意:代码开启了两个数据连接Socket,CH392F最多支持开启三个,CH392T最多支持开启七个。

  附参考例程:https://files.cnblogs.com/files/blogs/805237/TCP_Server%EF%BC%88CH392%EF%BC%89.rar?t=1707031408&download=true

标签:socket,CH392Inf,CH392,TCP,Server,SockInf,SourPort,Socket
From: https://www.cnblogs.com/sw111/p/17987044

相关文章

  • Windows Server 20xx 命令行配置系统策略
    :WindowsServer命令行配置系统策略:如果感觉使用图形界面进行系统策略配置比较繁琐,可以通过命令行方式批量配置系统策略。:先编制如下内容的SetSysPolicies.cmd文件(其中“@echo”引导的为文字回显行),然后以管理员方式打开CMD,:直接运行SetSysPolicies.cmd便可以快速完成系统策略配置......
  • Windows Server 2022 OVF, updated Jan 2024 (sysin) - VMware 虚拟机模板
    WindowsServer2022OVF,updatedJan2024(sysin)-VMware虚拟机模板2024年1月版本更新,现在自动运行sysprep,支持ESXiHostClient部署请访问原文链接:https://sysin.org/blog/windows-server-2022-ovf/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org现在......
  • SqlServer的日期相减datediff函数
    SqlServer的日期相减datediff函数selectdatediff(year,开始日期,结束日期);--两日期间隔年 selectdatediff(quarter,开始日期,结束日期);--两日期间隔季 selectdatediff(month,开始日期,结束日期);--两日期间隔月 selectdatediff(day,开始日期,结束日期)......
  • SqlServer substring()函数
    SqlServersubstring()函数例子:substring('98765',-1,3)结果:9substring('98765',0,3)结果:98substring('98765',1,3)结果:987在操作sqlserver时候用到了substring函数SUBSTRING(expression,start,length)参数expression字符串、二进制字符串、文本、图像、列或包含......
  • SqlServer日期格式化
    SqlServer日期格式化0或100(*)默认值monddyyyyhh:miAM(或PM)1101美国mm/dd/yyyy2102ANSIyy.mm.dd3103英国/法国dd/mm/yy4104德国dd.mm.yy5105意大利dd-mm-yy6106-ddmonyy7107......
  • SqlServer中charindex函数
    SqlServer中charindex函数CHARINDEX作用写SQL语句我们经常需要判断一个字符串中是否包含另一个字符串,但是SQLSERVER中并没有像C#提供了Contains函数,不过SQLSERVER中提供了一个叫CHAEINDX的函数,顾名思义就是找到字符(char)的位置(index),既然能够知道所在的位置,当然就可以判断......
  • SqlServer使用GroupBy分组时, 设置当查询不到某个分组时, 默认赋值一个0
    现在有个需求,需要将分组查询并统计个数后返回数据,但是当数据中没有对应的分组时就查询不到对应的数据,比如使用下面的Sql语句查询(State为Table1的字段,值为int类型)点击查看代码select caseState when0then'开工' when1then'等待' when2then'完工' ......
  • 【工具】结合tcpdump/wireshark捕获码流快速构造测试场景
    源码如下:CommonHeader.h#ifndefTESTAPP_COMMONHEADER_H#defineTESTAPP_COMMONHEADER_H#include<array>#include<vector>#include<list>#include<queue>#include<stack>#include<set>#include<map>#include<......
  • [转帖]SQL SERVER--- 排序规则、数据类型
    https://zhuanlan.zhihu.com/p/162933497 一、排序规则有时候我们向数据库插入文本时,会出现乱码“?”,这时有可能是我们创建数据库没有设置好排序规则以Chinese_PRC_CI_AS为例前半部分Chinese_PRC指的是针对大陆简体字unicode的排序规则后半部分的含义为:_BIN二进......
  • 运输层的TCP与UDP协议(学习笔记)
    一、运输层1.逻辑通信结构2.端口号、复用与分用二、TCP与UDP的区别1.概览图2.用户数据报协议UDP(UserDatagramProtocol)UDP面向应用层报文,可以在任何时候发起传输(无连接),向上层提供不可靠传输服务,即如果传输过程中出现误码,也不会触发重传。可以支持一对一、......