关于Socket通信的问题(60+20)

hwz_119 2007-05-15 05:40:29
我写了一个Socket通信程序.采用多进程方式.现在有这样一个问题:客户端联接该程序时,第一次联接,服务程序显示有联接进来,但是客户端发来的数据却无法显示.然后客户端再联接一次,这时再发数据,服务端就可以收到了.程序在:http://community.csdn.net/Expert/TopicView3.asp?id=5531978

两贴一齐给分.谢谢
...全文
287 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hwz_119 2007-05-16
  • 打赏
  • 举报
回复
解决了,谢谢了,自己的问题
hwz_119 2007-05-15
  • 打赏
  • 举报
回复
或者给个类似的例子也可以
hwz_119 2007-05-15
  • 打赏
  • 举报
回复
循环外面的mywork是被注释的。
DanXer 2007-05-15
  • 打赏
  • 举报
回复
你怎么有两个myWork,第一个会停在那里,等到收到数据应该会打出来。
myWork(clifd);

if((childpid=fork())==0)
{
printf("begin myWork1\n");
close(listenfd);
printf("begin myWork2\n");
myWork(clifd);
printf("begin myWork3\n");
exit(0);
}
if (childpid<0)
printf("fork error\n");

printf("hello over\n");
close(clifd);

假设你没有第一个myWork,才会启动子进程,里面调用myWork,这时,你的main主线程可能在子进程收到数据之前将clifd关闭。这样子就永远看不到数据了。

23,118

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧