Problem of UDPSocket on Windows

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)

Lee youser wrote:

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!

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 :slight_smile:

···

--
       vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407

Joel :

Try putting this at the top of your windows code:

Socket.do_not_reverse_lookup = true

Thanks a lot :slight_smile:

···

--

     vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407