From: Ben Armstrong Date: 2004-11-06T04:33:42+09:00 Subject: Socket problem Hi, We're having problems with the standard Socket module with Ruby. It has been alleged that this might be a C Runtime issue. But this seems unlikely in light of the fact that other ports on the same platform -- notably Perl, and perhaps also Python -- have working sockets, also implemented on top of the same C Runtime. Can someone shed some light on what may be going on? Here is a failing case, as we first reported the problem: client.rb: require 'socket' s=TCPSocket.new("localhost", ARGV[0]) s.puts("test\r\n") puts s.gets s.puts("Blah, blah\r\n") puts s.gets s.close server.rb: require 'socket' gs = TCPServer.open(0) printf("server is on port %d\n", gs.addr[1]) s=gs.accept line = s.gets puts("Got line: #{line}") s.puts(line.upcase) bl = s.gets puts ("Got str2: #{bl}") s.puts(bl.upcase) s.close On Linux (ruby 1.8.2), this gave the following output, as expected: (client side) TEST BLAH, BLAH (server side) server is on port 40050 Got line: test Got str2: Blah, blah On OpenVMS (ruby 1.8.1), this surprisingly gave the following output: (client side) test test (server side) server is on port 49379 Got line: test Got str2: test We tried varying the test by changing our puts to write on the client side, but the test results were the same on both platforms. Thanks, Ben Armstrong -- Ben Armstrong -. Medianet Development Group, BArmstrong@dymaxion.ca `-. Dymaxion Research Limited `- Halifax, Nova Scotia, Canada