ETIMEDOUT - why?

Why do I get this error?
Am I possibly creating my TCPSockets incorrectly?
When I have more than 10 connections going out I tend to get this error.
Now, I can rescue the error, but that's not what I want.
How do I code this correctly? (It's just a simple implementation)

···

--
Posted via http://www.ruby-forum.com/.

It's almost impossible to answer your questions with as little context
as you provided. Please provide more details. What is your
application doing? Where do you get timeouts? Did you make sure
network connectivity between the two computers involved is OK? Are
you sure there are no artificial limitations to connections that can
be opened? What kind of software are you connecting to? ...

Kind regards

robert

···

On Mon, Jan 7, 2013 at 12:39 PM, Sarek Mather <lists@ruby-forum.com> wrote:

Why do I get this error?
Am I possibly creating my TCPSockets incorrectly?
When I have more than 10 connections going out I tend to get this error.
Now, I can rescue the error, but that's not what I want.
How do I code this correctly? (It's just a simple implementation)

--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/

Any possibilities are fine. In fact, a decent book concerning RST, Error
timeouts (all errors?), TCP (I already know 'too much' i.e. finding it
difficult to actually 'learn' more), and fin/ack. In fact, if someone
can tell me if it's possible to close connections with fin/ack rather
than RST. That helps too.

It's either on the client-side or the server-side, I think it's on the
server-side, but I just wanted to check it's not on the client-side.
I'm really bad at programming sockets... in general, actually.
(sometimes up to 20 connections are created) This is all it is, just
re-used and repeated in same cases. (Without the values of the
variables):

socket = TCPSocket.new server, 80
socket.print(request)
socket.flush # is that even needed?...
socket.close

If it is the server ignoring when I have 10+ connections, I wonder how I
can deal with that.. I thought tcp was supposed to end with a fin/ack
handshake, not RSTs..

Thank you, really if I could just get some help I would appreciate it.
Anything that might help me?

···

--
Posted via http://www.ruby-forum.com/.

I'm working on debugging it, but *shrugs* sometimes 'block in connect',
sometimes 504 http error, or 408 http error. Maybe when I learn
something I'll figure it out.

···

--
Posted via http://www.ruby-forum.com/.

Wireshark is your friend - if you can / are allowed to use it.

Cheers

robert

···

On Mon, Jan 7, 2013 at 1:57 PM, Sarek Mather <lists@ruby-forum.com> wrote:

I'm working on debugging it, but *shrugs* sometimes 'block in connect',
sometimes 504 http error, or 408 http error. Maybe when I learn
something I'll figure it out.

--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/

Any possibilities are fine. In fact, a decent book concerning RST, Error
timeouts (all errors?), TCP (I already know 'too much' i.e. finding it
difficult to actually 'learn' more), and fin/ack. In fact, if someone
can tell me if it's possible to close connections with fin/ack rather
than RST. That helps too.

http://www.kohala.com/start/unpv22e/unpv22e.html

It's either on the client-side or the server-side, I think it's on the
server-side, but I just wanted to check it's not on the client-side.
I'm really bad at programming sockets... in general, actually.

I don't understand this: first you say you know too much and now you
say you're bad at socket programming. Maybe you know the wrong
things?

(sometimes up to 20 connections are created) This is all it is, just
re-used and repeated in same cases. (Without the values of the
variables):

socket = TCPSocket.new server, 80
socket.print(request)
socket.flush # is that even needed?...
socket.close

Better use the block form because otherwise proper cleanup is not guaranteed.

TCPSocket.new server, 80 do |socket|
  socket.print(request)
end

I think #flush is usually not needed:

TCPSocket.open('www.google.com', 80) {|s| p s, s.sync}
#<TCPSocket:fd 5>
true
=> [#<TCPSocket:(closed)>, true]

If it is the server ignoring when I have 10+ connections, I wonder how I
can deal with that.. I thought tcp was supposed to end with a fin/ack
handshake, not RSTs..

Thank you, really if I could just get some help I would appreciate it.
Anything that might help me?

Post your code - client and server.

Cheers

robert

···

On Mon, Jan 7, 2013 at 1:06 PM, Sarek Mather <lists@ruby-forum.com> wrote:

--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/