Actually, no someone else wrote the server. Supposedly sending a blank line will terminate the parser, which is why I terminated the call with \n\n. I will have to dig into the server code and figure out what's going on now that I know I haven't don't anything wrong on the client.
And duh, yes I should use autoflush!
Re^2: Why won't this socket client terminate?
Replies are listed 'Best First'.
Ok, sorry for being long winded. Your code looks fine although sounds like autoflush() should be used. When the server closes the socket, it will look like an EOF at your end.
Some ideas to try that might help some not so good code at the server end: -try putting the "\n" in a separate print statement to make sure it gets sent as the first char in a packet. -try " \n" a space before \n in case this guy's regex is wrong. Other than that, I can't think of anything else you could do.
Update: Another idea occurred to me. If you change: print "$_"; to print "****$_****"; You might see some invisible white space character in what is being returned to you (maybe the server is sending a blank line to you..and has botched the close($socket) code at their end? This is just odd because you are so very close - getting connected and a legible response back is usually way more than half the battle!