[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

TCPSocket and windows

Matthew Margolis

3/2/2005 5:38:00 PM

I can not get a working TCPSocket under windows with ruby 1.8.2. It
just hangs. Is there currently a solution for this problem?

-Matt Margolis


4 Answers

Bill Kelly

3/2/2005 7:06:00 PM

0

Hi,

From: "Matthew Margolis" <mrmargolis@wisc.edu>
> I can not get a working TCPSocket under windows with ruby 1.8.2. It
> just hangs. Is there currently a solution for this problem?

Could you post your code? I've used TCPSocket (and UDPSocket)
heavily under Win32 ruby since, I think version 1.6.4... Currently
running ruby 1.8.2 (2004-12-25) [i386-mswin32].


Regards,

Bill



Matthew Margolis

3/2/2005 7:33:00 PM

0

Bill Kelly wrote:

>Hi,
>
>From: "Matthew Margolis" <mrmargolis@wisc.edu>
>
>
>>I can not get a working TCPSocket under windows with ruby 1.8.2. It
>>just hangs. Is there currently a solution for this problem?
>>
>>
>
>Could you post your code? I've used TCPSocket (and UDPSocket)
>heavily under Win32 ruby since, I think version 1.6.4... Currently
>running ruby 1.8.2 (2004-12-25) [i386-mswin32].
>
>
>Regards,
>
>Bill
>
>
>
>
sure
-----------------
require 'Timeout'
require 'socket'
time =5

begin
Timeout.timeout(time) do
s = TCPSocket.new("google.com", "echo")
puts "fish"
s.close
end
rescue Timeout::Error
puts "Timed out"
end
----------------
I couldn't get ping.rb(stdlib) to work so I tried my own version and it
doesn't work either.

-Matt Margolis


Bill Kelly

3/2/2005 8:08:00 PM

0

From: "Matthew Margolis" <mrmargolis@wisc.edu>
> Bill Kelly wrote:
> >From: "Matthew Margolis" <mrmargolis@wisc.edu>
> >
> >>I can not get a working TCPSocket under windows with ruby 1.8.2. It
> >>just hangs. Is there currently a solution for this problem?
> >>
> >Could you post your code? I've used TCPSocket (and UDPSocket)
> >heavily under Win32 ruby since, I think version 1.6.4... Currently
> >running ruby 1.8.2 (2004-12-25) [i386-mswin32].
> >
> sure
> -----------------
> require 'Timeout'
> require 'socket'
> time =5
>
> begin
> Timeout.timeout(time) do
> s = TCPSocket.new("google.com", "echo")
> puts "fish"
> s.close
> end
> rescue Timeout::Error
> puts "Timed out"
> end
> ----------------
> I couldn't get ping.rb(stdlib) to work so I tried my own version and it
> doesn't work either.

Note, the above code also hangs under Linux, too. :)

I think it's just that google.com doesn't answer
connection requests on port 7 (echo).

Here's similar code (in irb on Windows) using http
instead of echo:

>> require 'socket'
=> true
>> s = TCPSocket.new("google.com", "http")
=> #<TCPSocket:0x2dc1828>
>> s.print "GET / HTTP/1.0\r\n\r\n"
=> nil
>> s.gets
=> "HTTP/1.0 200 OK\r\n"
>> s.gets
=> "Cache-Control: private\r\n"
>> s.gets
=> "Content-Type: text/html\r\n"
>> s.gets
=> "Set-Cookie: PREF=ID=5eb25ab2dffff310:TM=1109793965:LM=1109793965:
S=MmppHbq23LjrmaeH; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/;
domain=.google.com\r\n"
>> s.gets
=> "Server: GWS/2.1\r\n"
>> s.gets
=> "Date: Wed, 02 Mar 2005 20:06:05 GMT\r\n"
>> s.gets
=> "Connection: Close\r\n"
>> s.gets
=> "\r\n"
>> s.gets
=> "<html><head><meta http-equiv=\"content-type\" content=\"text/html;
charset=ISO-8859-1\"><title>Google</title><style><!--\n"
>> s.close
=> nil


HTH,

Regards,

Bill




Matthew Margolis

3/2/2005 8:16:00 PM

0

Bill Kelly wrote:

>From: "Matthew Margolis" <mrmargolis@wisc.edu>
>
>
>>Bill Kelly wrote:
>>
>>
>>>From: "Matthew Margolis" <mrmargolis@wisc.edu>
>>>
>>>
>>>
>>>>I can not get a working TCPSocket under windows with ruby 1.8.2. It
>>>>just hangs. Is there currently a solution for this problem?
>>>>
>>>>
>>>>
>>>Could you post your code? I've used TCPSocket (and UDPSocket)
>>>heavily under Win32 ruby since, I think version 1.6.4... Currently
>>>running ruby 1.8.2 (2004-12-25) [i386-mswin32].
>>>
>>>
>>>
>>sure
>>-----------------
>>require 'Timeout'
>>require 'socket'
>>time =5
>>
>>begin
>> Timeout.timeout(time) do
>> s = TCPSocket.new("google.com", "echo")
>> puts "fish"
>> s.close
>> end
>> rescue Timeout::Error
>> puts "Timed out"
>>end
>>----------------
>>I couldn't get ping.rb(stdlib) to work so I tried my own version and it
>>doesn't work either.
>>
>>
>
>Note, the above code also hangs under Linux, too. :)
>
>I think it's just that google.com doesn't answer
>connection requests on port 7 (echo).
>
>Here's similar code (in irb on Windows) using http
>instead of echo:
>
>
>
>>>require 'socket'
>>>
>>>
>=> true
>
>
>>>s = TCPSocket.new("google.com", "http")
>>>
>>>
>=> #<TCPSocket:0x2dc1828>
>
>
>>>s.print "GET / HTTP/1.0\r\n\r\n"
>>>
>>>
>=> nil
>
>
>>>s.gets
>>>
>>>
>=> "HTTP/1.0 200 OK\r\n"
>
>
>>>s.gets
>>>
>>>
>=> "Cache-Control: private\r\n"
>
>
>>>s.gets
>>>
>>>
>=> "Content-Type: text/html\r\n"
>
>
>>>s.gets
>>>
>>>
>=> "Set-Cookie: PREF=ID=5eb25ab2dffff310:TM=1109793965:LM=1109793965:
>S=MmppHbq23LjrmaeH; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/;
>domain=.google.com\r\n"
>
>
>>>s.gets
>>>
>>>
>=> "Server: GWS/2.1\r\n"
>
>
>>>s.gets
>>>
>>>
>=> "Date: Wed, 02 Mar 2005 20:06:05 GMT\r\n"
>
>
>>>s.gets
>>>
>>>
>=> "Connection: Close\r\n"
>
>
>>>s.gets
>>>
>>>
>=> "\r\n"
>
>
>>>s.gets
>>>
>>>
>=> "<html><head><meta http-equiv=\"content-type\" content=\"text/html;
>charset=ISO-8859-1\"><title>Google</title><style><!--\n"
>
>
>>>s.close
>>>
>>>
>=> nil
>
>
>HTH,
>
>Regards,
>
>Bill
>
>
>
>
>
Thanks I will give that a try.

-Matt Margolis