我正在开发一个linux下的c程序。我需要使用客户端服务器编程。我用读写,它工作正常。但是,在服务器和客户机上使用了20多次读写之后,它已停止工作。那是我没有收到任何输出。线。我不明白是什么问题,因为我使用的是同一条线。读写客户端服务器编程时出错
bzero(&hl,200);
read(a,hl,50*sizeof(char));
printf("%s",hl);
在客户端,
bzero(&hl,200);
strcpy(hl,"hello");
write(a,hl,50*sizeof(char));
printf("%s",hl);
而且,我不能够得到的返回值,并打印出来。当我在debian中使用它时,我获得了返回值并能够打印。现在,在Ubuntu(在家中)。现在不打印返回值。没有错误!这与OS有什么关系?
请帮我弄清楚问题所在。
更新:
在服务器,
INT C: S =读(一,& C,的sizeof(INT)); printf(“choice:%d”,c);
在客户端,
的scanf( “%d”,& CH); s = write(sd,& ch,sizeof(int));
两者的大小都是4.但是,在客户端,我在打印选项时得到了垃圾值。
在客户端。我得到50个字节和服务器40.我现在应该做什么? – Gomathi
修复服务器,使其再次调用'read'以获得剩余的10个字节。没有什么能够将这50个字节粘合在一起 - 你的程序是唯一知道它们是消息的程序,所以你的程序的工作是将它们粘合在一起。 –
先生,还是这样。此外,我无法获得返回值并打印出来。当我在debian中使用它时,我获得了返回值并能够打印。现在,在Ubuntu(在家中)。现在不打印返回值。这与OS有什么关系? – Gomathi