当前位置: 技术问答>linux和unix
关于系统移植出现的问题hp-unix->linux
来源: 互联网 发布时间:2015-11-09
本文导语: 有一个非常棘手的问题,请教各位老大。 我现在写了一个大致这样的流程的程序: main() { while(1) { 监听消息队列; if(取到消息) { if(fork()>0) return;//父进程返回继续监听 ...
有一个非常棘手的问题,请教各位老大。
我现在写了一个大致这样的流程的程序:
main()
{
while(1)
{
监听消息队列;
if(取到消息)
{
if(fork()>0) return;//父进程返回继续监听
else //fork()=0
创建socket();
connect()服务器端;
send();
recv();
close();
}
}
}
这个程序在hp机器上运行正常,现在我移植到linux机器上,就发现不能正常进行socket通讯了,经测试,子进程会停止在send()处,而此时我用ps查看进程,子进程已经没有了,不知何故?
我现在写了一个大致这样的流程的程序:
main()
{
while(1)
{
监听消息队列;
if(取到消息)
{
if(fork()>0) return;//父进程返回继续监听
else //fork()=0
创建socket();
connect()服务器端;
send();
recv();
close();
}
}
}
这个程序在hp机器上运行正常,现在我移植到linux机器上,就发现不能正常进行socket通讯了,经测试,子进程会停止在send()处,而此时我用ps查看进程,子进程已经没有了,不知何故?
|
connect的返回值是多少? 如果不是-1,errno的值没有参考价值。
|
在网络通信方面两者没什么大的区别。
你那个流程好象有问题吧,else好象少了一个{},仔细检查一下和你hp-unix上的不同
你那个流程好象有问题吧,else好象少了一个{},仔细检查一下和你hp-unix上的不同
|
贴上详细的code吧。 socket在hp和linux的code应该可以通用的。