TCP Sockets

I am trying to interface to an API. I am instructed to use the server
and port information provided to setup a TCP socket. I did that like
this:

     require 'socket'
     my_socket=TCPSocket::open("ip","port")

Where "ip" and "port" are the provided ip and port of the server
respectively.

I am told that once the connection is established I will receive a
greeting from the server. I was expecting to find that greeting in
my_socket. Instead the contents of my_socket looks like this:

#<TCPSocket:0x9961c80>

Can anyone please tell me what I am doing wrong and what I need to do
to get at the greeting? Obviously I am very green at this. Thanks
for any input.

             ... doug

You have to read from your socket.
Can you post some more of the code?
It looks like you're doing
puts my_socket
there.

You have to read from your socket.

Ahh! I get it. (I said that I was green at this.) I now have it
working except that it is REALLY slow.

Can you post some more of the code?

Here is my code that is now working:

    require 'socket'
    socket=TCPSocket::open("ip","port")
    out=File.open('/tmp/debug1','w')
    while line=socket.gets
      out.puts(line.chop)
    end
    socket.close
    out.close

Do you have any idea why this would be very slow? Thanks.

           ... doug

It's hard to say with no information, but it can be a slow connection.
I know there's a way to get the data asynchronously. I've even used it
but a while ago, I should take a look at that code to point it to you,
but this will avoid the while loop.

You can check the code on one of my github repositories.
It is an unfinished project but that part works.
http://github.com/kandalf/fluxy/blob/master/lib/fluxy_receiver.rb
Take a look at the run method there.
That's for a server socket but might help you otu with this.

Hope it helps.

I think that I have the speed issue resolved. It appears to be an
anomaly that is associated only with their sandbox server. The live
server seems to work just fine. I can live with that. Thanks for
your help.

          ... doug