Forum: Ruby Problem of UDPSocket on Windows

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Lee youser (Guest)
on 2008-11-27 15:48
(Received via mailing list)
Hi, All:

I beg for your helps, my trouble as follow:

Background:
Use UDP socket to implement an C/S module, Client send messages and
Server
receive these messages and print them.Client run

on Linux(RHEL 5.1) and Server run on Windows(XP).Thetwo computers are in
LAN.

Problem:
When client send a message,the server will receive this message after
4-5
seconds passed.It is a terrible delay!

Is there someone could tell me why? Is it a limitation on ruby
UDPSocket(for
Windows)?


PS:
When the Server run on linux and the Client run on windows, the server
can
receive messages immediately.
I tried to use C++ and Python to implement the Server, and it can
receive
messages immediately too.

server.rb:

require 'socket'

socket = UDPSocket.new
socket.bind("192.168.1.101",6321)
loop do
  msg,sender = socket.recvfrom(1024)
  p msg
end

client.rb:

require 'socket'

socket = UDPSocket.new
port = 6321
host = "192.168.1.101"
socket.send(ARGV[0],0,host,port)
Joel VanderWerf (Guest)
on 2008-11-27 20:48
(Received via mailing list)
Lee youser wrote:
>
> Problem:
> When client send a message,the server will receive this message after 4-5
> seconds passed.It is a terrible delay!

Try putting this at the top of your windows code:

Socket.do_not_reverse_lookup = true

If that helps, then the problem has something to do with delay in DNS
lookup, converting numerical to symbolic addresses.

Just a guess :)
Lee youser (Guest)
on 2008-11-28 15:54
(Received via mailing list)
Joel :


> Try putting this at the top of your windows code:
>
> Socket.do_not_reverse_lookup = true


Thanks a lot  :)
This topic is locked and can not be replied to.