http://qs321.pair.com?node_id=11125702


in reply to Tk with thread and stram data

I don't have Windows, so good luck trying this. It does work on an ArchLinux system, that is, if I correctly understand what you are trying to do.

#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11125685 use warnings; use Tk; use IO::Socket; my $listen = new IO::Socket::INET ( LocalHost => '127.0.0.1', LocalPort => '23456', Proto => 'tcp', Listen => 5, Reuse => 1 ) or die "cannot create listen socket $@\n"; warn "server waiting for client connection on port 23456 \n"; my $val = 0; my $client; my $mw = MainWindow->new(); my $label = $mw->Label( -width => 50, -textvariable => \$val,)->pack() +; my $button; $button = $mw->Button( -text => 'Stop input', -command => sub { $button->configure(-state=>'disabled'); close $client; close $listen; }, )->pack(); $mw->fileevent( $listen, 'readable', \&newcon ); MainLoop; sub newcon { $client = $listen->accept; $mw->fileevent($client, 'readable', \&getdata ); } sub getdata { if( sysread $client, my $buf, 1024 ) { warn "received data: $buf\n"; $val = $buf =~ tr/\n//dr; $client->send('ok'); # write response data to the connected client shutdown($client, 1); # notify client that response has been sent } else { close $client; } }

Replies are listed 'Best First'.
Re^2: Tk with thread and stram data
by Anonymous Monk on Dec 25, 2020 at 02:05 UTC