Problem of UDPSocket on Windows


#1

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)


#2

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


#3

Joel :

Try putting this at the top of your windows code:

Socket.do_not_reverse_lookup = true

Thanks a lot :slight_smile: