QNX VM不支持zmq_vmci?

QNX VM不支持zmq_vmci?,c,virtual-machine,zeromq,C,Virtual Machine,Zeromq,我一直在用C语言在QNX 6.6中微子虚拟机上玩ZMQ。只是一些简单的req rep和pub子程序。我已经让它们只在一个VM上工作,并在它自己的进程中运行每个程序 //client void *context = zmq_ctx_new (); void *requester = zmq_socket (context, ZMQ_REQ); zmq_connect (requester, "tcp://localhost:8001"); //server void *context = zmq

我一直在用C语言在QNX 6.6中微子虚拟机上玩ZMQ。只是一些简单的req rep和pub子程序。我已经让它们只在一个VM上工作,并在它自己的进程中运行每个程序

//client
void *context = zmq_ctx_new ();
void *requester = zmq_socket (context, ZMQ_REQ);
zmq_connect (requester, "tcp://localhost:8001");

//server
void *context = zmq_ctx_new ();
void *responder = zmq_socket (context, ZMQ_REP);
zmq_bind (responder, "tcp://*:8001")
但是,当我将传输从tcp更改为vmci时,会收到一条错误消息,表示它不受支持

错误消息:协议未配置或不受支持

我的主机是Windows7。 我正在使用VMware Workstation来托管虚拟机。 我的libzmq版本是4.2.0

谢谢你的帮助。:)

ZeroMQ vmci://传输类需要一些额外的更改 除了在源代码中从
tcp:
交换到
vmci:
之外

vmci://
还需要知道(接收)来自虚拟机管理程序的
CID

//  Get, show and set the CID
cid       = VMCISock_GetLocalCID();
printf( "Obtained [%d] for using in vmci://<CID>:<port>", cid );
sprintf( aSockEndPOINT,            "vmci://%d:5555",      cid );

//  .bind()
opRetCode = zmq_bind( socket, aSockEndPOINT ); assert ( rc == 0 );
其他一些适用于实践的建议


对于QNX虚拟机: 你能确认QNX中微子已经成功地适应了ZeroMQ吗

C程序包含文件的位置
vmci_sockets.h
将文件包含在以下位置之一:

Linux来宾–
/usr/lib/vmware tools/include/vmci

Linux主机–
/usr/lib/vmware/include/vmci


您能否确认,您的ZeroMQ QNX端口已经或通过其他发布方法也包含了vmci


您是否测试了VMCI在QNX端与普通C(不含ZeroMQ)中的VMware工作站的工作情况


最后不能不提 VM必须获得适当的权限才能使用VMCI服务,否则主机/隔离将占据首要位置:


您可能已经注意到,StackOverflow社区鼓励用户发布MCVE完整示例,包括您观察到的异常/错误消息的精确副本,以便提供相关且可复制的场景。你介意更新你的帖子,包括完整的细节和错误信息吗?感谢并欢迎Matt加入这个伟大的知识社区。您可能已经注意到StackOverflow推广社区网络礼仪,以[+1]向上投票奖励有用的答案,以[Accept]奖励最佳答案。你的问题已经得到了回答,但你还没有迈出这样的一步。您是否介意对其进行修改,并表达为您的问题提供的帮助的有用性,以满足社区提倡的标准?
//  --------------------------------------------------------------
//  .connect() using a CID
sprintf( aConnEndPOINT, "vmci://%d:5555", cid );
opRetCode = zmq_connect( socket, aConnEndPOINT ); assert ( rc == 0 );