5 底层消息发送
在linux_qmi_qmux_if_server.c文件的入口main()函数,通过一个select来监听所有从
linux_qmi_client端发出的socket,通过for循环调用linux_qmi_qmux_if_server_process_client_msg()
处理这些监听的消息。进入到函数linux_qmi_qmux_if_server_process_client_msg()后,
通过recv函数将监听的socket的消息写入buf_size这个buffer里面。调用流程图如下,
if ((buf_size = recv (fd, (void*)&platform_msg_hdr,
QMI_QMUX_IF_PLATFORM_SPECIFIC_HDR_SIZE,0))<= 0)
recv方法在接收socket时,并没有全部接收。而且只接收了platform_msg_hdr。这个platform_msg_hdr
是在linux_qmi_qmux_client里面定义的,server接收到后,首先会判断从client端发过来的这个消息是否正常,
包括client_id和消息长度。