Hi, I added the Windows::WSA module to windows-pr recently (it''s in the latest git repo). However, I can''t seem to make WSAStartup work. I tried the following bit of code, only to get "The Windows Sockets version requested is not supported" on my Vista box. Is it really not supported on Vista? The docs say Win2k or later. Or is there another issue? require ''windows/wsa'' require ''windows/error'' require ''windows/system_info'' include Windows::WSA include Windows::Error include Windows::SystemInfo begin version = MAKEWORD(2,2) buffer = 0.chr * 532 err = WSAStartup(version, buffer) if err != 0 puts "Oops: " + get_last_error(err) end ensure WSACleanup() end
Hi, 2011/2/8 Daniel Berger <djberg96 at gmail.com>:> Hi, > > I added the Windows::WSA module to windows-pr recently (it''s in the latest > git repo). However, I can''t seem to make WSAStartup work. I tried the > following bit of code, only to get "The Windows Sockets version requested is > not supported" on my Vista box. > > Is it really not supported on Vista? The docs say Win2k or later. Or is > there another issue? > > require ''windows/wsa'' > require ''windows/error'' > require ''windows/system_info'' > > include Windows::WSA > include Windows::Error > include Windows::SystemInfo > > begin > ?version = MAKEWORD(2,2) > ?buffer = 0.chr * 532 > ?err = WSAStartup(version, buffer) > > ?if err != 0 > ? ?puts "Oops: " + get_last_error(err) > ?end > ensure > ?WSACleanup() > end >The current definition of MAKEWORD and MAKELONG is wroing. Here is fixed version of MAKEWORD and MAKELONG. def MAKEWORD(a, b) ((a & 0xff) | ((b & 0xff) << 8)) end def MAKELONG(a, b) ((a & 0xffff) | ((b & 0xffff) << 16)) end Regards, Park Heesob
On Mon, Feb 7, 2011 at 11:02 PM, Heesob Park <phasis at gmail.com> wrote:> Hi, > > 2011/2/8 Daniel Berger <djberg96 at gmail.com>: >> Hi, >> >> I added the Windows::WSA module to windows-pr recently (it''s in the latest >> git repo). However, I can''t seem to make WSAStartup work. I tried the >> following bit of code, only to get "The Windows Sockets version requested is >> not supported" on my Vista box. >> >> Is it really not supported on Vista? The docs say Win2k or later. Or is >> there another issue? >> >> require ''windows/wsa'' >> require ''windows/error'' >> require ''windows/system_info'' >> >> include Windows::WSA >> include Windows::Error >> include Windows::SystemInfo >> >> begin >> ?version = MAKEWORD(2,2) >> ?buffer = 0.chr * 532 >> ?err = WSAStartup(version, buffer) >> >> ?if err != 0 >> ? ?puts "Oops: " + get_last_error(err) >> ?end >> ensure >> ?WSACleanup() >> end >> > The current definition of MAKEWORD and MAKELONG is wroing. > > Here is fixed version of MAKEWORD and MAKELONG. > > def MAKEWORD(a, b) > ? ? ?((a & 0xff) | ((b & 0xff) << 8)) > end > def MAKELONG(a, b) > ? ? ?((a & 0xffff) | ((b & 0xffff) << 16)) > endAck, thanks. I''m pretty sure I copy/pasted this, so I''m assuming there''s a precedence issue. Ruby is *usually* the same as C, so I''m somewhat surprised here. Regards, Dan