xtang先生:
您好!
我最近在看QNX系统中有关message-paaaing的内容,试编了一个C/S程序,可运行的结果不是我所期望的。
程序的基本思想:
client方
点击send按钮,通过SendMsg()将 text中的内容发送到另一个application中的 label
server方
通过MsgReceive()接收client方送来的消息在label中显示出来,然后通过MsgReply(), 给client方一个答复,答复的内容在client方的text中显示出来。
我发送一个消息“I am a student.”给server, 可是运行的结果是在label中显示如下内容"((", 而在client方没有答复的信息。无论我怎么思考,也不知道问题出来哪里。
望xtang先生在闲暇之余给予解答,先行感谢!如果可以的话,能不能给一个有关这个程序的完整的代码,我好有个感性认识。非常感谢,我将恭候佳音。
xtang1
2
你的程序使用Photon吗?
你可以把程序简化到client发一个字符串到server, server 打印这个字符串并回答。
如果还是不对,那么你的IPC部份的程序有问题,可以把程序Post 上来。否则,就是跟Photon有问题了。
xtang先生:
您好!
还是这个问题(我用的是PhAB),我昨天试了一天,还是没有答案,希望您有时间的话一定要帮帮我,好吗?
我为这个问题好长时间都没有一点进展,我真的好着急,真心的希望你一定要帮帮我,最好能给我一个完整的代码,这样我可以有所借鉴,会给我一个很大的启发的,好吗?
盼望着您的好消息。
xtang1
5
我的意思,叫你写一个不用Photon的C/S,就只发一个字符串。看看能不能正常接受。如果可以,那么再检查你的Photon部分的调用,看看问题是不是在那里。
xtang先生:
关于这个问题,我这些天进行了很多次的试探,但仍是毫无结果,我真的已经无能为力了,作为一个初学者,我真心的希望能够得到你的帮助,帮我解决这个问题好吗?这个问题对我真的很重要,但直接影响我对QNX中Message Passing的理解,求你一定要帮帮我,好吗?
xtang1
7
我不知道你的问题在那里啊。下面是最简单的Message Passing的例子(随手写的,没有编译试过),希望能对你有所启发。
Server:
#include <stdio.h>
#include <sys/neutrino.h>
int main()
{
int chid, rcvid;
char buf[50];
if ((chid = ChannelCreate(0)) == -1) {
perror("ChannelCreate");
return -1;
}
printf("server pid is %d, chid is %d\n", pid = getpid(), chid);
memset(buf, 0, 50);
if ((rcvid = MsgReceive(chid, buf, 49, 0)) == -1) {
perror("MsgReceive");
return -1;
}
printf("rcvid is %d, msg is '%s'\n", rcvid, buf);
MsgReply(rcvid, 0, 0, 0);
ChannelDestroy(chid);
return 0;
}
client:
#include <stdio.h>
#include <sys/neutrino.h>
int main(int argc, char **argv)
{
int pid, chid;
int coid;
char *msg = "Hello tragicalwind!\n";
if (argc < 3) {
printf("client <server_pid> <server_chid> \n");
return -1;
}
pid = atoi(argv[1]);
chid = atoi(argv[2]);
coid = ConnectAttach(0, 0, 0, _NTO_SIDE_CHANNEL, 0);
if (coid == -1) {
perror("ConnectAttach");
return -1;
}
if (MsgSend(coid, msg, strlen(msg), 0, 0) == -1) {
perror("MsgSend");
return -1;
}
ConnectDetach(coid);
return 0;
}
我试试看能不能运行。不好意思,一直麻烦你,不管怎么说,我都非常感谢。
谢谢你,lonki先生,你让我找到了梦寐以求的宝贝,对我有非常非常大的帮助,谢谢你,真的非常感谢你。
希望你有什么好的东东一定要告诉我,我真的太需要了。
lonki先生:
您好!
我现在主要在学习GUI, 您没有没有关这方面的资料,最好是有具体例子的,这样更有助于我的理解,可以帮我吗?
lonki
12
不好意思,对QNX的Phton我也是一无所知,因为我的工作领域不在这方面,我仅做“底层”的程序。
dxwang
13
lonki : the above url cann’t open . Can you check it for me . very Thanks!
dxwang
14
tragicalwind : have you solved your phab c/s program ? if you solved it , can you post some simple code there . very Thanks!