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

CH392作服务器TCP Server应用配置使用的更多相关文章

  1. Modbus库开发笔记之九:利用协议栈开发Modbus TCP Server应用

    前面我们已经完成了Modbus协议栈的开发,但这不是我们的目的.我们开发它的目的当然是要使用它来解决我们的实际问题.接下来我们就使用刚开发的Modbus协议栈开发一个Modbus TCP Server ...

  2. 代码实现SQL SERVER TCP/IP协议配置

    代码实现SQL SERVER TCP/IP协议配置 SET NOCOUNT ON ) ,) ,) SET @Root = 'HKEY_LOCAL_MACHINE' SET @Path = 'Softw ...

  3. 如何在linux服务器部署Rstudio server,配置ODBC远程访问win 服务器上的SQL server

    如何在linux服务器部署Rstudio server,配置ODBC后通过RODBC包远程访问SQL server 背景介绍:之前写过一篇文章,提到近期要部署Rstudio server(搭建数据分析 ...

  4. 免费ftp服务器FileZilla Server配置

    FileZilla Server下载安装完成后,必须启动软件进行设置,由于此软件是英文,本来就是一款陌生的软件,再加上英文,配置难度可想而知,小编从网上找到一篇非常详细的教程进行整理了一番,确保读到这 ...

  5. Windows Server 2019 配置远程桌面授权服务器许可RD

    Windows Server 2019 配置远程桌面授权服务器许可RD Windows Server 201默认的最大远程登录连接为2个,超过这个数目需要使用license server进行授权,但又 ...

  6. Ubuntu Server如何配置SFTP(建立用户监狱)

    Ubuntu Server如何配置SFTP(建立用户监狱)   SSH File Transfer Protocol是一个比普通FTP更为安全的文件传输协议.(参考资料:http://en.wikip ...

  7. CentOS 6.3下Samba服务器的安装与配置方法(图文详解)

    这篇文章主要介绍了CentOS 6.3下Samba服务器的安装与配置方法(图文详解),需要的朋友可以参考下   一.简介  Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件, ...

  8. 【转载】Linux NFS服务器的安装与配置

    一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操 ...

  9. Ubuntu Server如何配置SFTP

    SH File Transfer Protocol是一个比普通FTP更为安全的文件传输协议.(参考资料:http://en.wikipedia.org/wiki/SSH_File_Transfer_P ...

  10. Tomcat中server.xml配置及Context的配置说明

    server.xml配置简介         下面是这个文件中的基本配置信息,更具体的配置信息见tomcat的文档         server:         port     指定一个端口,这个 ...

随机推荐

  1. dpt-shell 抽取壳实现原理分析(加壳逻辑)

    开源项目位置(为大佬开源精神点赞) https://github.com/luoyesiqiu/dpt-shell 抽取壳分为两个步骤 加壳逻辑: 一 对apk进行解析,将codeItem抽出到一个文 ...

  2. 基于javaweb的个人音乐网站

    一 .需求 ① 前台用户: 用户注册和登录以及完善个人资料: 添加好友功能(用户之间可通过发送好友申请添加好友,被添加人可以同意或拒绝好友申请): 下载歌曲功能(当用户点击下载按钮时,就能下载相对应的 ...

  3. 用Docker发布Study.BlazorOne.Blazor到公网测试服务器

    # 1.准备公网上的测试数据库. 之前我们在Visual Studio里面调试的时候,使用的都是localhost的数据库.现在需要在公网上准备一个SQL Server.然后执行下面的步骤 1)把St ...

  4. DataGear 自定义数据可视化看板的图表主题

    DataGear 看板的 dg-chart-theme 属性,提供了简单且强大的自定义图表主题功能. 通常,只需要设置其color.backgroundColor.actualBackgroundCo ...

  5. 【Azure 云服务】当Windows系统发布新的安全漏洞后,如何查看Azure云服务(Cloud Service)的实例是否也更新了安全补丁呢?

    问题描述 当Windows发布新的安全漏洞后,会根据安全漏洞的级别分类来确定是紧急打补丁升级,还是每一月的补丁日( 每月第二周的星期二)来统一推送补丁. 比如最近的一个安全漏洞(9月13号发布)  C ...

  6. C/C++、C#、JAVA(三):字符串操作

    C/C++.C#.JAVA(三):字符串操作 目录 C/C++.C#.JAVA(三):字符串操作 定义字符串 C C++ C# JAVA 捕捉输入和输出 等值比较 C/C++ C# JAVA 字符串操 ...

  7. Java 类的成员之四: 代码块(或初始化块)

    1 package com.bytezreo.block; 2 3 /** 4 * 5 * @Description 类的成员之四: 代码块(或初始化块) 6 * @author Bytezero·z ...

  8. 使用 Docker 部署 GLPI 资产管理系统

    1)GLPI 介绍 GLPI 简介 参考: https://github.com/glpi-project/glpi 官方文档:https://glpi-project.org/documentati ...

  9. java 携带session 前台传递cookie 跨域解决方案 vue + java

    前台 axios 设置 withCredentials: true 后台设置 跨域 header("Access-Control-Allow-Origin","源地址&q ...

  10. nrm 安装报错 解决方案

    想用 npm login 发现用的淘宝镜像,一看安装个nrm,结果运行还报错了.你看看. 改下,登录完再改回来. https://blog.csdn.net/mynewdays/article/det ...