>Otherwise it fills the textwidget with all the \n terminated
>strings it gets thru the port.

I ran your code; the Tk window loads and a listener is created on TCP/7890.  Though I am able to connect (telnet 127.0.0.1 7890) to the server and I can type in the Tk text widget the input from the telnet session isn't echo'd to the text widget, is this expected? Also, nothing is echo'd to the telnet window until I disconnect (CTRL+]) the telnet session.

Thanks,
Brett Carroll
IT Specialist
Bureau of the Public Debt
(304)480-7731
[EMAIL PROTECTED]



"Lynn. Rickards" <[EMAIL PROTECTED]>

01/03/2006 08:12 PM

To
[EMAIL PROTECTED]
cc
[email protected]
Subject
Re: Win32 and PERL::Tk and Sockets.....





[EMAIL PROTECTED] wrote:
>
> Has anyone heard of a fix or work-around for Sockets not working with
> PERL::Tk on Win32?
> I have found postings from several people that ran into the same problem
> with Win32-Perl::Tk-Sockets, but haven't seen anything recently relating
> to a fix.  The problem is that once the socket is opened (Listening) the
> PERL::Tk GUI freezes while the socket listens for incoming data, but
> never unfreezes.
>
> I found a post, "Re: Sockets, fileevents and Win32" from June 19, 2000
> that was an apparent work-around and included a snippet of code, but the
> code is incomplete and I have yet to be able to make it work.
>
> Thanks,
> Brett Carroll
>
>

Perhaps POE will do it for you.

The shamefully untidy code below was as very hastily hacked from
a POE example or a posting someplace, and serves as a debug tool
for PerlScript run within an app that grabs all the STD handles.

There is a small leak somewhere...like if I forgetfully leave it sitting
idle overnight I have no resources in the morning. An extra cup of
coffee is a small price to pay ;-) I didn't touch it once it worked...

Otherwise it fills the textwidget with all the \n terminated
strings it gets thru the port.

HTH - Lynn.
#!/usr/bin/perl -w

use Tk;
use Tk::StayOnTop;
use strict;

use POE qw(Component::Server::TCP);


     my $mw = $poe_main_window ;
     my $t = $mw->Scrolled("Text", -width => 130, -height => 25, -wrap
=> 'none');
     $t->pack(-expand => 1);
$mw->stayOnTop;

POE::Component::Server::TCP->new
  ( Alias => "echo_server",
    Port => 7890,
    ClientInput => sub {
        my ( $session, $heap, $input ) = @_[ SESSION, HEAP, ARG0 ];
        print STDERR "$input $heap\n";
        debugout ($t, $input . "\n");
      }
  );

# Start the server.
$poe_kernel->run();
exit 0;

     sub debugout {

         my $widget  = shift;;

         my $ARG = shift;
         $widget->insert('end', $ARG);
         $widget->yview('end');

     } # end fill_text_widget

_______________________________________________
ActivePerl mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to