I ran into an interesting problem a few days ago and thought I'd come to the monks for guidance.

I was opening sockets with IO::Socket::INET and using them throughout the course of a script. From time to time, these sockets had to be closed and possibly reopened at a later time. I had been closing them with 'shutdown(SOCK, 2)' since shutdown is described as a 'more insistent form of close' in the camel book.

The sockets appeared to be closing as the list of open connections on a 'netstat' didn't climb steadily as I would expect if they were staying open. However, if I did an 'fstat -u userid' I found well over 1000 open files for my script. These files seemed to be open network connections. Changing the script to use close rather than shutdown solved the problem right away.

My question, then, is why did shutdown work this way? Is my understanding of the camel book flawed somehow. Am I using shutdown in an odd way it was not intended? Thanks for any guidance you may have to offer.

An 8 bit man in a 32 bit world.


In reply to shutdown vs. close on INET sockets by gomez18

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.