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. typing模块中Protocol协议的使用

    说明 在 Python 的 typing 模块中,Protocol 是一个用于定义协议(Protocol)的类. 协议是一种形式化的接口,定义了一组方法或属性的规范,而不关心具体的实现.Protoco ...

  2. iOS的Runtime知识点繁杂难啃,真的理解它的思想,你就豁然开朗了

    一.Runtime 1.概念: 概念:Runtime是Objective-c语言动态的核心,即运行时.在面向对象的基础上增加了动态运行,达到很多在编译时确定方法推迟到了运行时,从而达到动态修改.确定. ...

  3. 各类LLM模型分析比较

    Large Language Model 模型对比 对于LLM模型框架主要如下3类[1]:1.autoregressive,2.autoencoding,3.encoder-decoder.主要对3类 ...

  4. Effective C++ 第一章:让自己习惯C++

    Effective C++ 第一章:让自己习惯C++ 引言 最近在阅读这本<effective C++ 改善程序与设计的55个具体做法>这本书,为了以后忘记的时候回顾,写一些笔记,每次笔记 ...

  5. Java 异常处理(2) : 方法重写的规则之一:

    1 package com.bytezero.throwable; 2 3 import java.io.FileNotFoundException; 4 import java.io.IOExcep ...

  6. 来也科技收购Mindsay背后:新旧势力交锋智能自动化备受关注

    来也科技收购Mindsay背后:新旧势力交锋智能自动化备受关注 来也科技收购Mindsay背后:历程一波三折,意义非同寻常 来也科技收购Mindsay,国产RPA正式进军国际市场 收购Mindsay来 ...

  7. Python-使用openpyxl读取excel内容

    1. 本篇文章目标 将下面的excel中的寄存器表单读入并构建一个字典 2. openpyxl的各种基本使用方法 2.1 打开工作簿 wb = openpyxl.load_workbook('test ...

  8. Chrome Audio Capture - 录音插件 功能很简单,就是点击录音 文本转语音用

    Chrome Audio Capture - 录音插件 功能很简单,就是点击录音 文本转语音用

  9. Vue3 写业务逻辑不适合用TS(TypeScript)

    TypeScript 最重要的就是装饰器 Vue3最重要更新就是Setup 装饰器就是为了打散功能点,Vue3的Setup功能也是打散功能点,那用Vue3上TS,感觉就是自己给自己多一层工作量. 我这 ...

  10. AWS ES ISM学习应用笔记

    Elastic Search 6以上版本推出 ILM,用于管理Index的生命周期,但AWS上的ES是基于OSS版本的ES,所以自己开发了ISM来代替ILM.项目是从logstash往ES写入数据,但 ...