in reply to Re: sending data over TCP channel using POE::Component::Server::TCP
in thread sending data over TCP channel using POE::Component::Server::TCP

Yes I did.
I get 14003 for the sending data and 11060 at the receiver.
my POE version is 0.9989. Which one are you using now?

Update:
Please retake a look at the server code again. I made some changes there.
I tried to update to the latest version version which is 1.002 and run the same program.
It gives me this error :
Prototype mismatch: sub POE::Kernel::F_GETFL: none vs () at C:/Perl/site/lib/POE/Resource/FileHandles.pm line 24.
Prototype mismatch: sub POE::Kernel::F_SETFL: none vs () at C:/Perl/site/lib/POE/Resource/FileHandles.pm line 25.
I didn't have it with the old one.
  • Comment on Re^2: sending data over TCP channel using POE::Component::Server::TCP

Replies are listed 'Best First'.
Re^3: sending data over TCP channel using POE::Component::Server::TCP
by cmv (Chaplain) on Jul 31, 2008 at 17:06 UTC
    I took a look at the "Prototype mismatch" error you describe here (after upgrading to POE version 1.002), and although I'm not running activestate perl, the version of POE I have running on my Apple Mac, shows the following code:
    .../POE/Kernel.pm BEGIN { ... if ($^O eq 'MSWin32') { *{ __PACKAGE__ . '::RUNNING_IN_HELL' } = sub { 1 }; } else { *{ __PACKAGE__ . '::RUNNING_IN_HELL' } = sub { 0 }; } ... } .../POE/Resource/FileHandles.pm: ### Some portability things. # Provide dummy constants so things at least compile. These constants # aren't used if we're RUNNING_IN_HELL, but Perl needs to see them. BEGIN { if (RUNNING_IN_HELL) { eval '*F_GETFL = sub { 0 };'; eval '*F_SETFL = sub { 0 };'; } }
    I think we'll need to take a peek at your Kernel.pm and FileHandles.pm to see what's going on here. Anybody else have any thoughts on this? In any case, I don't think its part of your original problem (well, not yet anyways).

    One other interesting thing is that this same error shows up in the Activestate build here.

    -Craig

      What I can find in these 2 files is not the same as yours. Here is the code:
      ../POE/kernel.pm ... { no strict 'refs'; if ($^O eq 'MSWin32') { *{ __PACKAGE__ . '::RUNNING_IN_HELL' } = sub { 1 }; } else { *{ __PACKAGE__ . '::RUNNING_IN_HELL' } = sub { 0 }; } ... .../POE/Resource/FileHandles.pm BEGIN { eval 'F_GETFL'; if ($@) { *F_GETFL = sub () { 0 }; *F_SETFL = sub () { 0 }; }
      There's eval 'F_GETFL' come up. This certainly means something but I don't know what it is.
      I use windows platform and my version of perl is 5.8.

        The BEGIN block intends to define F_GETFL and F_SETFL as constants if there's an error while evaluating F_GETFL. These constants are used elsewhere in the module, and it's more efficient to make sure they're defined and work rather than to make redundant checks over the lifetime of the program.

        Various versions of Perl for Windows use different prototypes for the F_GETFL and F_SETFL constants, despite the empty prototype being standard for Perl constants.

        POE tracks the latest build rather than try to do the right thing for every version out there. If someone wants to step up and do the necessary diligence, we'll be happy to accept a patch.

        Meanwhile, these warnings are ugly but otherwise harmless.

Re^3: sending data over TCP channel using POE::Component::Server::TCP
by rcaputo (Chaplain) on Aug 08, 2008 at 20:11 UTC

    As a developer of POE, I use whatever's currently in the repository. "Eating my own dog food" is one of the easier methods of quality assurance. The latest CPAN version should be pretty close: I'm releasing earlier and more often than I have been.

    I wasn't able to reproduce the problem on Mac OSX. There may be Windows issues at work. There are very good reasons why it's called "running in hell".

      Hi, I've just installed the latest version OF POE on ActivePerl 5.8.8 and I've got the same errors: Prototype mismatch: sub POE::Kernel::F_GETFL: none vs () at C:/Perl/site/lib/POE/Resource/FileHandles.pm line 24. Prototype mismatch: sub POE::Kernel::F_SETFL: none vs () at C:/Perl/site/lib/POE/Resource/FileHandles.pm line 25. I tested it with the sample given in the POE perldoc. I don't have this with a previous version. May you help? Cheers, Sebastien