# TCPSocket.new 'Bad file descriptor'

**URL:** <https://www.ruby-forum.com/t/tcpsocket-new-bad-file-descriptor/89365>\
**Category:** Ruby\
**Created:** [March 19, 2007, 10:20pm UTC](https://www.ruby-forum.com/t/tcpsocket-new-bad-file-descriptor/89365 "2007-03-19T22:20:27Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![sean\_nakasone](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/e9a140/32.png) [@sean\_nakasone](https://www.ruby-forum.com/u/sean_nakasone)\
**Post date:** [March 19, 2007, 10:20pm UTC](https://www.ruby-forum.com/t/tcpsocket-new-bad-file-descriptor/89365/1 "2007-03-19T22:20:27Z")

</div>

Here’s my very simple script to open a tcp port and write to it.

require ‘socket’  
s=TCPSocket.new(“173.30.6.16”, 9990)  
s.write(“Hello\n”)  
s.close

The TCPSocket.new returns with:

cli.rb:3:in `initialize': Bad file descriptor - connect(2) (Errno::EBADF) from cli.rb:3:in`new’  
from cli.rb:3

The IP address is the PC that I’m running the script from. I’m stumped  
because if I replace “173.30.6.16” with “localhost” or “127.0.0.1”, it  
works. Any suggestions? I guess it could be a network security issue,  
but how can I get around this?

---

<div class="post-metadata">

**Author:** ![sean\_nakasone](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/e9a140/32.png) [@sean\_nakasone](https://www.ruby-forum.com/u/sean_nakasone)\
**Post date:** [March 20, 2007, 12:16am UTC](https://www.ruby-forum.com/t/tcpsocket-new-bad-file-descriptor/89365/2 "2007-03-20T00:16:18Z")

</div>

Yes, it’s most probably a network security issue. Check your firewall  
settings, and in order to be sure, disable your firewall and try while  
firewall is disabled.

---

<div class="post-metadata">

**Author:** ![sean\_nakasone](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/e9a140/32.png) [@sean\_nakasone](https://www.ruby-forum.com/u/sean_nakasone)\
**Post date:** [September 25, 2007, 3:34am UTC](https://www.ruby-forum.com/t/tcpsocket-new-bad-file-descriptor/89365/3 "2007-09-25T03:34:15Z")

</div>

Im actually getting this error now as well, and I tried disabling my  
firewall, and disabling the settings on my norton AntiVirus.

Ive tried

TCPSocket.new “localhost”,   
TCPSocket.new “127.0.0.1”,   
TCPSocket.new “”,

These all give the same errors. My mongrel servers work fine as usual. I  
don’t know why Im having so much trouble making a TCPSocket connection.

Any thoughts?
