You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CAPL中TCP消息读取:OnTcpReceive函数参数及返回值疑问

关于CAPL中OnTcpReceive函数的疑问解答

一、OnTcpReceive函数无需手动传参

OnTcpReceive是CAPL的回调函数,由CANoe/CANalyzer的TCP栈自动触发调用,不需要你手动传入任何参数。你当前代码里对函数参数的命名(比如gConnectionSocket、result_Read_AI)可以自定义,但参数的类型和顺序必须严格匹配系统定义的标准签名:

void OnTcpReceive( dword socket, long result, dword address, dword port, char buffer[], dword size)

各参数的具体含义:

  • socket:触发接收事件的TCP套接字句柄
  • result:接收操作的结果状态(0表示成功,非0为错误码)
  • address:发送方的IP地址(DWORD格式)
  • port:发送方的端口号
  • buffer:存储接收到的数据的缓冲区
  • size:实际接收到的数据字节数

你代码里将参数名替换为自定义变量名(比如用result_Read_AI代替标准的result)是允许的,但这些参数由系统自动填充,无需手动传入。

二、每个TCP消息接收都会返回result值

是的,每次TCP栈接收到数据并触发OnTcpReceive回调时,都会通过result参数返回本次接收操作的结果:

  • 当result为0时,代表接收操作成功完成
  • 当result为非0值时,说明出现接收错误(如连接中断、数据接收异常等)

你可以在回调函数内通过判断该值,处理接收成功或失败的对应逻辑。

内容的提问来源于stack exchange,提问作者Markus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 07:18:28