求助,一个socket的fork问题

这是一个客户端的代码片段,其中SOCK已经连接到了服务器的指定端口,问题是,如果去掉着色的代码,服务器端能正常接收到客户端命令行输入的字符串,加上着色的代码就有问题,服务器端收不到,同时客户端不能继续输入字符串,问题出在哪里呢?

SOCK->autoflush(1);
defined(my $child = fork()) or die "Can't fork: $!";
if($child == 0){
        while(my $msg_out =<>){
                SOCK->print( $msg_out);
                sleep(1);
        }
}else{
        while(my $msg_in = <SOCK>){
                print  $msg_in;
                sleep(1);
        }
}


另外,我的本意是客户端连接成功后,分成两个进程,一个负责发生,一个负责接收,有更好的组织形式吗?

作者: carywfy   发布时间: 2011-05-28

是不是分进程分的有问题。我也不太懂。

作者: kingwmj   发布时间: 2011-05-28