CAPL如何使用socket套接字实现TCP通信(建立连接)

socket套接字相关的文章我们已经写过太多,这里就不再展开。CAPL使用socket实现TCP活UDP通信,在文章《【CANoe示例分析】TCP/UDP Server/Client》也有过介绍,但主要介绍的是工程示例,代码分析比较粗略,今天重点介绍下CAPL代码如何实现socket套接字在TCP通信中的使用。

首先TCP通信双方的角色不同,一个是client,一个是server。

client作为连接的发起方,创建socket后,负责发起连接。

variables
{const dword             INVALID_SOCKET      = 0xFFFFFFFF;dword                   clientSocket        = INVALID_SOCKET;
}
on key 'a'
{clientSocket = tcpOpen(ipGetAddressAsNumber("192.168.0.52"), 6001);tcpConnect(clientSocket, ipGetAddressAsNumber("192.168.0.17"), 6002);
}

tcpOpen()函数除了可以创建tcp socket以外,还可以绑定本地ip地址和端口号。这样就不需要再调用ipBind()函数绑定。

调用tcpConnect()函数会发起连接请求,请求的目标主机的ip地址和端口号需要明确。

连接请求到达server端时,server端需要监听这个请求,为此,server端也需要创建socket并监听。

variables
{const dword             INVALID_SOCKET    = 0xFFFFFFFF;dword       

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/759652.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

21---EEPROM电路设计

视频链接 EEPROM电路设计01_哔哩哔哩_bilibili EEPROM电路设计 1、存储器的分类 一般根据掉电丢失来划分的存储器。可分为易失性存储器和非易失性储存器。 ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据。 1.1、易失性存储器-R…

383.赎金信

给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以,返回 true ;否则返回 false 。 magazine 中的每个字符只能在 ransomNote 中使用一次。 思路:将magazine 中字…

升级 HarmonyOS 4 版本,腕上智慧更进一步

HUAWEI WATCH GT 3 系列升级 HarmonyOS 4 新版本后,手表体验更进一步,快来看看有哪些变化吧~

如何进行端口映射端口转发?

在互联网时代,网络安全成为一项重要的任务。端口映射端口转发是一种常用的网络安全技术,它可以实现远程访问内部网络资源的需求。本文将介绍端口映射端口转发的基本原理和应用场景,以及一种名为"天联"的解决方案。 基本原理 端口映…

种植新革命:科技赋能绿色未来

《种植新革命:科技赋能绿色未来》 一、种植技术的颠覆式创新 随着科技的飞速发展,种植技术也在经历一场颠覆式的创新。传统的种植方式,虽然历史悠久,经验丰富,但在面对现代化、大规模、高效的需求时,逐渐…

LeetCode每日一题——最后一个单词的长度

最后一个单词的长度OJ链接:58. 最后一个单词的长度 - 力扣(LeetCode) 题目: 思路 : 统计字符串中最后一个单词的长度,那么我们可以定一一个指针,从后向前开始统计,当指针指向的元素…

Nest.js Sequelize ORM到数据库(MySQL PostgreSQL)示例

Nest.js Sequelize ORM到数据库(MySQL & PostgreSQL)示例 目录 Nest.js Sequelize ORM到数据库(MySQL & PostgreSQL)示例您将学到什么先决条件步骤1:创建您的第一个NestJS Sequelize ORM应用步骤2:使用NestJS与MySQL或PostgreSQL构建Sequelize模型步骤3:使用Nes…

【LabVIEW FPGA入门】局部变量和全局变量

局部变量 无法访问某前面板对象或需要在程序框图节点之间传递数据时,可创建前面板对象的局部变量。创建局部变量后,局部变量仅仅出现在程序框图上,而不在前面板上。 局部变量可对前面板上的输入控件或显示件进行数据读写。写入局部变量相当于…

汇编语言中的start有什么用

一 START END 开头有个START 结尾有个END 1.汇编语言中的start有什么用? start就是一个标号,标志程序的入口而已,程序加载到内存之后CS:IP会指向这个标号,从START指向的指令开始运行 这个标号不一定是START,你也可以用MAIN,但在程序的最后要用END MAIN来提示程序…

流畅的 Python 第二版(GPT 重译)(十三)

第二十四章:类元编程 每个人都知道调试比一开始编写程序要困难两倍。所以如果你在编写时尽可能聪明,那么你将如何调试呢? Brian W. Kernighan 和 P. J. Plauger,《编程风格的要素》 类元编程是在运行时创建或自定义类的艺术。在 P…

Spring Data访问Elasticsearch----查询方法

Spring Data访问Elasticsearch----查询方法 一、查询lookup策略1.1 声明的查询 二、创建查询三、方法返回类型四、使用Query注解 一、查询lookup策略 Elasticsearch模块支持所有基本的查询构建功能,如字符串查询、native搜索查询、基于条件的查询和从方法名派生的查…

vue3+vite+Electron构建跨平台应用

1.搭建第一个 electron-vite 项目 electron-vite 是一个新型构建工具,旨在为 Electron 提供更快、更精简的开发体验。它主要由五部分组成: 一套构建指令,它使用 Vite 打包你的代码,并且它能够处理 Electron 的独特环境,包括 Node.js 和浏览器环境。 集中配置主进程、渲染…

局域网内怎么控制另一台电脑

局域网内怎么控制另一台电脑 在局域网内控制另一台电脑是一个相对高级的操作,通常用于远程管理、技术支持或资源共享等场景。要实现这一功能,需要确保两台电脑都连接到同一个局域网,并且已进行适当的配置。以下是几种常见的方法:…

【蓝桥杯选拔赛真题42】C++切蛋糕 第十四届蓝桥杯青少年创意编程大赛 算法思维 C++编程选拔赛真题解析

目录 C切蛋糕 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、推荐资料 C切蛋糕 第十四届蓝桥杯青少年创意编程大赛C选拔赛真题 一、题目要求 1、编程实现 有一块矩形蛋糕,小明从蛋糕…

汽车信息安全--密钥管理系统初探(2)

目录 1.HSM中的密钥管理 1.1 密钥生成 1.2 密钥分发 1.3 密钥使用 1.4 密钥存储 <

GCN-Align论文翻译

GCN-Align翻译 Cross-lingual Knowledge Graph Alignment via Graph Convolutional Networks 基于图卷积网络的跨语言知识图谱对齐 Abstract 多语言知识图&#xff08;KGs&#xff09;&#xff0c;如DBpedia和YAGO&#xff0c;包含几种不同语言的实体结构化知识&#xff0c…

linux arm64 opencv 使用MJPG获取摄像头图片

先上代码 #include <opencv2/opencv.hpp>cv::VideoCapture capture(9, cv::CAP_V4L2);if (!capture.isOpened()){qDebug() << "打开摄像头失败";return -1;}if(1){// 设置为 MJPG (Motion-JPEG, compressed)qDebug() << "MJPEG:" <…

墨菲安全在软件供应链安全领域阶段性总结及思考

向外看&#xff1a;墨菲安全在软件供应链安全领域的一些洞察、思考、行动 洞察 现状&挑战&#xff1a; 过去开发安全体系是无法解决软件供应链安全问题的&#xff1b;一些过去专注开发安全领域的厂商正在错误的引导行业用开发安全思维解决软件供应链安全问题&#xff0c;治…

树形递归模板

详情参考CSDN链接: https://www.cnblogs.com/lidar/p/12972792.html public class Menu {// 菜单idprivate String id;// 菜单名称private String name;// 父菜单idprivate String parentId;// 菜单urlprivate String url;// 菜单图标private String icon;// 菜单顺序private …

laravel10使用firebase/php-jwt 6.0

话不多说&#xff0c;直接上示例 <?php /*** Created by PhpStorm* User: xxx 根据自己情况设置* Date: 2024/3/20* Time: 15:53* Brief:* docs:*/namespace App\lib\jwt;use App\Exceptions\BaseException; use Exception; use Firebase\JWT\JWT; use Firebase\JWT\Key;c…