First, you should read from CLIENT, not from $client_addr:

while ( defined ($response = <CLIENT>) ){

Next, you have to flush (or autoflush) when you write something on either side. Otherwise, due to buffering, the messages will not be available on the other side right away, resulting in a deadlock, because both sides will wait for the other side to say something...  One way would be to use IO::Handle:

use IO::Handle; ... print CLIENT "Hello from the server \n\n "; CLIENT->flush(); ...

and similarly on the client side.

Also, as both client and server are in a readline while loop, you'll likely want to have some protocol that defines when to stop reading and terminate the connection.

Finally, when you read lines on the server side, you also have to print a line on the client side:

print SOCKET "Client says hellooooo toooo !!! \n"; # ^^ SOCKET->flush();

Otherwise, the server will hang in $response = <CLIENT>, waiting for the newline...


In reply to Re^3: Simple question regarding Bidirectional socket programming by almut
in thread Simple question regarding Bidirectional socket programming by sajanagr

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.