Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Re: How to do simultaneous reads and writes to/from a socket?

by marto (Bishop)
on May 10, 2006 at 10:04 UTC ( #548421=note: print w/replies, xml ) Need Help??

in reply to How to do simultaneous reads and writes to/from a socket?

Hi sonofason,

I notice that this if your first post. Welcome to the Monastery.
To echo some of what jesuashok has advised, post your code so that people can point out where things are going wrong, or could be improved. Also have a read at the PerlMonks FAQ and How do I post a question effectively? if you have not already done so.


  • Comment on Re: How to do simultaneous reads and writes to/from a socket?

Replies are listed 'Best First'.
Re^2: How to do simultaneous reads and writes to/from a socket?
by sonofason (Sexton) on May 10, 2006 at 10:28 UTC
    Thanks for the replies. I'll try your suggestions. In the meantime, here is some example code illustrating what I am doing:
    use strict; use threads; use threads::shared; use IO::Socket; my $keep_running : shared = 1; my $socket = IO::Socket::INET->new(PeerAddr => "", PeerPort = +> 8080, Type => SOCK_STREAM, Proto => 'tcp'); my $sender_thread = threads->new(\&do_send, $socket); my $listener_thread = threads->new(\&do_listen, $socket); $sender_thread->detach(); $listener_thread->join(); $socket->close(); sub do_listen { my $sock = shift; STDOUT->autoflush(1); while ($keep_running) { my $message = $sock->getline(); last unless defined($message); print $message; } } sub do_send { my $sock = shift; while (my $line = <STDIN>) { $sock->print($line); $sock->flush(); } $keep_running = 0; }

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://548421]
[1nickt]: This is less than perfect ... but demanding perfection (from people or from life) is a sure way to unhappiness.
[Discipulus]: and anyway we have CB where every (democratic) opinion can be expressed
erix eat the rich!
[1nickt]: I do think it is sad that roho has received 3 downvotes for his polite request, as did I when I objected to the profanity in stonecolddevin's sig. I upvoted both him and Karl for the discussion. Way too much downvoting for inappropriate reasons here!
Discipulus learn that 'argue' has a little negative sense, he thought was a neutral sense, 'vox media'
[1nickt]: argue == discuss && argue == be contentious
[Discipulus]: you are right 1nickt i didnt voted nor downvoted; I just upvote perl content i like
[1nickt]: In Spanish, to argue (like a fight) is discutir -- does not mean to discuss !
[1nickt]: Sigh, this is why I gave up human-only languages and became a Perl linguist :-)
[Discipulus]: i just, rarely, downvote unpolite posts and spam, and wrong advices

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (6)
As of 2017-06-22 12:21 GMT
Find Nodes?
    Voting Booth?
    How many monitors do you use while coding?

    Results (519 votes). Check out past polls.