问题描述
当客户端和服务器使用单独的 JSON 配置文件时,我无法在服务器和客户端之间建立通信 我的要求是使用 vsomeip 框架传输 SOME/IP 数据。我正在同一系统上传输数据。 但是,当对发送器和接收器使用相同的 JSON 文件时,我能够传输数据。 下面是使用的 JSON 文件。
{
"unicast" : "160.48.199.102","logging" :
{
"level" : "trace","console" : "true","file" : { "enable" : "false","path" : "/tmp/vsomeip.log" },"dlt" : "false"
},"applications" :
[
{
"name" : "master_tx","id" : "0x1277"
},{
"name" : "master_rx","id" : "0x1344"
}
],"services" :
[
{
"service" : "0x3556","instance" : "0x0001","reliable" : { "port" : "30490","magic-cookies" : "false" },"events" :
[
{
"event" : "0x8001","is_field" : "true","is_reliable" : "false"
}
]
}
]
"max-payload-size" : "5000","max-payload-size-unreliable" : "5000","routing" : "master_tx","service-discovery" :
{
"enable" : "true","port" : "30490","protocol" : "_udp_","initial_delay_min" : "100","initial_delay_max" : "200","repetitions_base_delay" : "200","repetitions_max" : "15","ttl" : "100","cyclic_offer_delay" : "2000","request_response_delay" : "1500"
}
}
但是,当发送器和接收器使用不同的 JSON 文件时,我无法建立任何连接。以下是使用的 JSON 文件。
server.json
{
"unicast" : "192.168.0.178","id" : "0x1277"
}
],"is_reliable" : "false"
}
],"eventgroups" :
[
{
"eventgroup" : "0x001","events" : [ "0x8001" ]
}
]
}
],"max-payload-size" : "5000","request_response_delay" : "1500"
}
}
client.json
{
"unicast" : "192.168.0.178","network" : "vsomeip-rx","dlt" : "true"
},"applications" :
[
{
"name" : "master_rx","clients" :
[
{
"service" : "0x3556","unreliable" : [ "30490" ]
}
],"routing" : "master_rx","request_response_delay" : "1500"
}
}
如果 JSON 文件有问题或者我遗漏了其他东西,有人可以帮助我吗。
解决方法
server.json
- 端口 30490 被定义为可靠的,而它被用作服务发现端口(这是不可靠的)。使用其他的,例如 30500。
- 我不确定是否允许使用 "_udp_" 值 - "udp" 肯定是。
client.json
-
“clients”标签指定用于连接特定服务的端口。在这种情况下,再次仅使用一个端口 30490,该端口已为服务发现定义。此外,在客户端中它被指定为不可靠的,而在服务器中它是可靠的。 除了文档中指定的: vsomeip 将占用列表的第一个空闲端口。如果找不到空闲端口,连接将失败。 尝试使用其他端口或删除“clients”标签进行测试。
-
我不确定是否允许使用 "_udp_" 值 - "udp" 肯定是。