请问linux下socket的刷新缓冲区与windows下的方法不一样吗

请问linux下socket的刷新缓冲区与windows下的方法不一样吗

我在windows下用连接了socket之后,

        $CliSocket = IO::Socket::INET->new('PeerAddr' => $var{IpAddress},
                                           'PeerPort' => $var{IpPort},
                      'Proto'    => $Proto);

使用 $CliSocket->flush();

但是在linux下,我 syswrite之后,然后flush,服务端却报收不到信息。请大家帮忙看下是什么问题?
  my $relen = syswrite($CliSocket,$strConnectString,$lencon);
    $CliSocket->flush();
都已经 syswrite 了,再 flush 不是多此一举嘛。
syswrite ,就会自动刷新缓冲区?

不过在linux下,服务端还是收不到信息,每次都要到程序关闭的时候才收到。应该是在缓冲区没发出去
先flush再syswrite...


QUOTE:
原帖由 apile 于 2008-6-18 13:14 发表
先flush再syswrite...

一样还是不行~
IO::Socket::INET 中有个autoflush(),我调用了这个自动刷新,也没起到效果。

$socket -> autoflush(1);
抓包吧。
程序有了问题,要调试,而不是尝试。
谢谢提醒,要调试不是尝试。