关于Socket通信的问题(60+20)
我写了一个Socket通信程序.采用多进程方式.现在有这样一个问题:客户端联接该程序时,第一次联接,服务程序显示有联接进来,但是客户端发来的数据却无法显示.然后客户端再联接一次,这时再发数据,服务端就可以收到了.程序在:http://community.csdn.net/Expert/TopicView3.asp?id=5531978   
 两贴一齐给分.谢谢 
------解决方案--------------------你怎么有两个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关闭。这样子就永远看不到数据了。