CH392作服务器TCP Server应用配置使用
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最多支持开启七个。
CH392作服务器TCP Server应用配置使用的更多相关文章
- Modbus库开发笔记之九:利用协议栈开发Modbus TCP Server应用
前面我们已经完成了Modbus协议栈的开发,但这不是我们的目的.我们开发它的目的当然是要使用它来解决我们的实际问题.接下来我们就使用刚开发的Modbus协议栈开发一个Modbus TCP Server ...
- 代码实现SQL SERVER TCP/IP协议配置
代码实现SQL SERVER TCP/IP协议配置 SET NOCOUNT ON ) ,) ,) SET @Root = 'HKEY_LOCAL_MACHINE' SET @Path = 'Softw ...
- 如何在linux服务器部署Rstudio server,配置ODBC远程访问win 服务器上的SQL server
如何在linux服务器部署Rstudio server,配置ODBC后通过RODBC包远程访问SQL server 背景介绍:之前写过一篇文章,提到近期要部署Rstudio server(搭建数据分析 ...
- 免费ftp服务器FileZilla Server配置
FileZilla Server下载安装完成后,必须启动软件进行设置,由于此软件是英文,本来就是一款陌生的软件,再加上英文,配置难度可想而知,小编从网上找到一篇非常详细的教程进行整理了一番,确保读到这 ...
- Windows Server 2019 配置远程桌面授权服务器许可RD
Windows Server 2019 配置远程桌面授权服务器许可RD Windows Server 201默认的最大远程登录连接为2个,超过这个数目需要使用license server进行授权,但又 ...
- Ubuntu Server如何配置SFTP(建立用户监狱)
Ubuntu Server如何配置SFTP(建立用户监狱) SSH File Transfer Protocol是一个比普通FTP更为安全的文件传输协议.(参考资料:http://en.wikip ...
- CentOS 6.3下Samba服务器的安装与配置方法(图文详解)
这篇文章主要介绍了CentOS 6.3下Samba服务器的安装与配置方法(图文详解),需要的朋友可以参考下 一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件, ...
- 【转载】Linux NFS服务器的安装与配置
一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操 ...
- Ubuntu Server如何配置SFTP
SH File Transfer Protocol是一个比普通FTP更为安全的文件传输协议.(参考资料:http://en.wikipedia.org/wiki/SSH_File_Transfer_P ...
- Tomcat中server.xml配置及Context的配置说明
server.xml配置简介 下面是这个文件中的基本配置信息,更具体的配置信息见tomcat的文档 server: port 指定一个端口,这个 ...
随机推荐
- 运用 Argo Workflows 协调 CI/CD 流水线
Argo Workflows 是一个开源的容器原生工作流引擎,用于协调 CI/CD 在 Kubernetes 中的运作.它以 Kubernetes 自定义资源(CRD)的形式实现,使开发人员能够创建自 ...
- 01、NATS基础介绍
01.NATS基础介绍 项目中使用到了 NATS,但是之前并没有接触过,所以特意去学习了下,网上找了些资料,相对来说,都不是很全的介绍,所以特意记录下笔记,方便自己掌握,也希望可以帮助到其他小伙伴. ...
- 制作docker方式执行Gitlab Runner所需要的镜像
背景知识 启动Gitlab Runner时,使用Gitlab提供的官方镜像gitlab/gitlab-runner:latest即可. Runner以容器的方式启动以后,根据前文我们注册到Gitlab ...
- 【Azure App Service for Container】记一次拉取镜像失败的特殊情况
问题描述 使用Azure App Service For Container 拉取 应用镜像,发现拉取失败. 错误消息: "Image pull failed since Inspect i ...
- Nebula Graph 源码解读系列 | Vol.03 Planner 的实现
上篇我们讲到 Validator 会将由 Parser 生成的抽象语法树(AST)转化为执行计划,这次,我们来讲下执行计划是如何生成的. 概述 Planner 是执行计划(Execution Plan ...
- 在Avalonia项目中使用MediatR和MS.DI库实现事件驱动通信
大家好,我是沙漠尽头的狼! AvaloniaUI是一个强大的跨平台.NET客户端开发框架,让开发者能够针对Windows.Linux.macOS.Android和iOS等多个平台构建应用程序.在构建复 ...
- kotlin协程小记
转载请标明出处:https://www.cnblogs.com/tangZH/p/16849169.html -[kotlin协程小记]-[协程的async使用]- [kotlin协程异常处理之-tr ...
- [Rocky Linux] 使用btrfs
使用btrfs rocky本身并没有btrfs的相关管理工具,所以需要自己安装,但是遗憾的发现它的源中啥也没有.只能考虑自己安装. 相关说明 btrfs Wiki (kernel.org) 可以从中得 ...
- Codeforces Round 914 (Div. 2)A~C
A 反过来考虑,由皇后和国王的位置去寻找骑士的位置,当一个点既可以被皇后找到,也可以被国王找到时就说明这个点是满足条件的 #include <bits/stdc++.h> #define ...
- .NET 5 以后的 HttpClient 超时问题
背景 起因是朋友在使用深信服的 Easy Connect 连接到内网之后,使用 HttpClient 访问对应内网的 API 站点均返回 System.Net.Sockets.SocketExcept ...