Test/socket for Windows

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

e$B:G6a$Ne(Bsockete$B<~$j$N%F%9%H$r<B9T$7$F$$$F!“e(BWindowse$B$G$$$m$$$mLdBje(B
e$B$,$”$k$H$$$&$3$H$K5$IU$-$^$7$?!#e(B
e$B:GBg$NLdBj$Oe(B read_nonblock e$B$He(B write_nonblock
e$B$G8G$^$C$A$c$&$He(B
e$B$$$&$b$N$J$N$G$9$,!"$3$l$O$3$C$A$NLdBj$J$N$G$H$j$"$($:CV$$$Fe(B
e$B$$-$^$9e(B(e$BCV$$$F$$$$F$$$$OC$G$b$J$$$s$G$9$,e(B…)e$B!#e(B

e$B$5$F!“e(Btest/socket/test_nonblock.rbe$B$NCf$G$O!“e(B
assert_raise(Errno::EAGAIN) { … }
e$B$H$$$&%A%’%C%/$,B?MQ$5$l$F$$$k$N$G$9$,!”$3$l$Oe(B
assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) { … }
e$B$K$9$Y$-$G$O$J$$$+$H;W$&$N$G$9$,!”@5$7$$$G$7$g$&$+e(B?

e$B$^$?!“e(BWindowse$B$G$O!“e(Bbinde$B$5$l$F$$$J$$e(Bsockete$B$KBP$9$ke(Brecvfrom()e$B$Oe(B
EINVALe$B$rJV$9$N$G$9$,!”$3$l$O!“e(B
(1) e$BHs>o<1$@!”$*A0$,$J$s$H$+$7$me(B
(2) e$B$=$&$$$&4D6-$@$H$$$&$J$i$=$l$O$=$l$G$”$j$+$Je(B
(3) e$B$=$NB>e(B
e$B$N$$$:$l$@$H9M$($k$Y$-$G$7$g$&$+e(B?

e$B$^$?!"e(BUNIX
Sockete$B$,B8:_$7$J$$4D6-$KBP$9$kG[N8$b7g$1$F$$$k$h$&e(B
e$B$K;W$o$l$^$9!#e(B

e$B0J>ee(B3e$BE@$K4X$7$F!"e(B1e$BE@L$KIU$$$F$O!V@5$7$$!W!"e(B2e$BE@L$KIU$$$F$Oe(B(2)e$B!"e(B
e$B$@$H2>Dj$7$F$N%Q%C%A$G$9!#e(B

Index: test/socket/test_nonblock.rb

RCS file: /home/cvs/ruby/test/socket/test_nonblock.rb,v
retrieving revision 1.2
diff -u -1 -p -r1.2 test_nonblock.rb
— test/socket/test_nonblock.rb 4 Jun 2006 12:14:54 -0000 1.2
+++ test/socket/test_nonblock.rb 7 Jun 2006 06:01:43 -0000
@@ -13,3 +13,3 @@ class TestNonblockSocket < Test::Unit::T
serv.listen(5)

  • assert_raise(Errno::EAGAIN) { serv.accept_nonblock }
  • assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) {
    serv.accept_nonblock }
    c = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0)
    @@ -53,4 +53,4 @@ class TestNonblockSocket < Test::Unit::T
    u1.bind(“127.0.0.1”, 0)
  • assert_raise(Errno::EAGAIN) { u1.recvfrom_nonblock(100) }
  • assert_raise(Errno::EAGAIN) { u2.recvfrom_nonblock(100) }
  • assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) {
    u1.recvfrom_nonblock(100) }
  • assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK, Errno::EINVAL) {
    u2.recvfrom_nonblock(100) }
    u2.send(“aaa”, 0, u1.getsockname)
    @@ -63,3 +63,3 @@ class TestNonblockSocket < Test::Unit::T
    assert_equal(u2_port, port)
  • assert_raise(Errno::EAGAIN) { u1.recvfrom_nonblock(100) }
  • assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) {
    u1.recvfrom_nonblock(100) }
    u2.send("", 0, u1.getsockname)
    @@ -84,4 +84,4 @@ class TestNonblockSocket < Test::Unit::T
    s = serv.accept
  • assert_raise(Errno::EAGAIN) { s.recvfrom_nonblock(100) }
  • assert_raise(Errno::EAGAIN) { c.recvfrom_nonblock(100) }
  • assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) {
    s.recvfrom_nonblock(100) }
  • assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) {
    c.recvfrom_nonblock(100) }
    s.write “aaa”
    @@ -104,3 +104,3 @@ class TestNonblockSocket < Test::Unit::T
    s.close if s && !s.closed?
  • end
  • end if defined?(UNIXSocket)

@@ -110,4 +110,4 @@ class TestNonblockSocket < Test::Unit::T
s2 = Socket.new(Socket::AF_INET, Socket::SOCK_DGRAM, 0)

  • assert_raise(Errno::EAGAIN) { s1.recvfrom_nonblock(100) }
  • assert_raise(Errno::EAGAIN) { s2.recvfrom_nonblock(100) }
  • assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) {
    s1.recvfrom_nonblock(100) }
  • assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK, Errno::EINVAL) {
    s2.recvfrom_nonblock(100) }
    s2.send(“aaa”, 0, s1.getsockname)
    @@ -136,4 +136,4 @@ class TestNonblockSocket < Test::Unit::T
    c, s = tcp_pair
  • assert_raise(Errno::EAGAIN) { c.read_nonblock(100) }
  • assert_raise(Errno::EAGAIN) { s.read_nonblock(100) }
  • assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) {
    c.read_nonblock(100) }
  • assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) {
    s.read_nonblock(100) }
    c.write(“abc”)
    @@ -142,3 +142,3 @@ class TestNonblockSocket < Test::Unit::T
    assert_equal(“bc”, s.read_nonblock(100))
  • assert_raise(Errno::EAGAIN) { s.read_nonblock(100) }
  • assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) {
    s.read_nonblock(100) }
    ensure
    @@ -156,3 +156,3 @@ class TestNonblockSocket < Test::Unit::T
    loop {
  •  assert_raise(Errno::EAGAIN) {
    
  •  assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) {
       loop {
    

Index: test/socket/test_socket.rb

RCS file: /home/cvs/ruby/test/socket/test_socket.rb,v
retrieving revision 1.8
diff -u -1 -p -r1.8 test_socket.rb
— test/socket/test_socket.rb 5 Jun 2006 09:15:46 -0000 1.8
+++ test/socket/test_socket.rb 7 Jun 2006 06:01:43 -0000
@@ -82,2 +82,2 @@ class TestSocket < Test::Unit::TestCase
end
-end
+end if defined?(Socket) && Socket.respond_to?(:sockaddr_un)

e$B$=$l$G$O!#e(B

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:28694] test/socket for Windows”
on Wed, 7 Jun 2006 15:12:25 +0900, “U.Nakamura”
[email protected] writes:

|e$B$5$F!“e(Btest/socket/test_nonblock.rbe$B$NCf$G$O!“e(B
| assert_raise(Errno::EAGAIN) { … }
|e$B$H$$$&%A%'%C%/$,B?MQ$5$l$F$$$k$N$G$9$,!”$3$l$Oe(B
| assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) { … }
|e$B$K$9$Y$-$G$O$J$$$+$H;W$&$N$G$9$,!”@5$7$$$G$7$g$&$+e(B?

UNIXe$B7O$G$Oe(BEAGAINe$B$He(BEWOULDBLOCKe$B$OF1$8CM$N$3$H$,B?$$$_$?$$$G$9e(B
e$B$+$i$M!#N>J};XDj$9$k$N$,@5$7$$$G$7$g$&!#e(B

|e$B$^$?!“e(BWindowse$B$G$O!“e(Bbinde$B$5$l$F$$$J$$e(Bsockete$B$KBP$9$ke(Brecvfrom()e$B$Oe(B
|EINVALe$B$rJV$9$N$G$9$,!”$3$l$O!“e(B
| (1) e$BHs>o<1$@!”$*A0$,$J$s$H$+$7$me(B
| (2) e$B$=$&$$$&4D6-$@$H$$$&$J$i$=$l$O$=$l$G$”$j$+$Je(B
| (3) e$B$=$NB>e(B
|e$B$N$$$:$l$@$H9M$($k$Y$-$G$7$g$&$+e(B?

(2)e$B$+$J$"!#e(B

|e$B0J>ee(B3e$BE@$K4X$7$F!"e(B1e$BE@L$KIU$$$F$O!V@5$7$$!W!"e(B2e$BE@L$KIU$$$F$Oe(B(2)e$B!"e(B
|e$B$@$H2>Dj$7$F$N%Q%C%A$G$9!#e(B

e$B%3%_%C%H$7$F$/$@$5$$!#e(B

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

In message “[ruby-dev:28696] Re: test/socket for Windows”
on Jun.07,2006 16:54:14, [email protected] wrote:
| e$B$3$3$m$b$A!"e(BErrno::EWOULDBLOCK, Errno::EAGAIN e$B$N=g$,$$$$5$$,e(B
| e$B$7$^$9!#e(B

e$B$“!<!”$b$&F~$l$F$7$^$$$^$7$?!#e(B
e$B$N$G!"5$$K$J$k$J$i=$@5$7$F$/$@$5$$!#e(B

| > e$B$^$?!“e(BWindowse$B$G$O!“e(Bbinde$B$5$l$F$$$J$$e(Bsockete$B$KBP$9$ke(Brecvfrom()e$B$Oe(B
| > EINVALe$B$rJV$9$N$G$9$,!”$3$l$O!“e(B
| > (1) e$BHs>o<1$@!”$*A0$,$J$s$H$+$7$me(B
| > (2) e$B$=$&$$$&4D6-$@$H$$$&$J$i$=$l$O$=$l$G$”$j$+$Je(B
| > (3) e$B$=$NB>e(B
| > e$B$N$$$:$l$@$H9M$($k$Y$-$G$7$g$&$+e(B?
|
| e$BL>A0$,L5$$%=%1%C%H$K$O$I$3$+$i$b%G!<%?$,$/$k$O$:$,$J$$$N$G%G!<e(B
| e$B%?$r<u$1<h$i$J$$$O$:$@!“$H$$$&H=CG$J$s$G$9$+$M$'!#e(B
|
| Mac OS X e$B$G$N<:GT$b$=$&$J$s$G$9$,!“L>A0$,L5$$>uBV$H$$$&$N$Oe(B
| e$B$J$+$J$+G:$^$7$$$G$9$M!#e(B
| http://mput.dip.jp/autobuild/ruby-trunk/log/20060607T110000.gz
|
| e$B$$7$m!"L>A0$,$J$$>uBV$G$O$9$k$O$:$N$J$$A:ne(B (recvfrom e$B$H$+e(B
| getsockname e$B$H$+e(B) e$B$O$7$J$$$[$&$,$$$$$N$+$b$7$l$^$;$s!#e(B
| e$B%”%W%j%1!<%7%g%s$G$b$9$Y$-$G$O$J$$$N$@$+$i!”%F%9%H$bITMW$H$$e(B
| e$B$&$3$H$G!#e(B
|
| e$B$G$b!“Mn$A$J$$$H$$$&$3$H$/$i$$$O%F%9%H$9$k0UL#$,$”$k!"$+$b$7e(B
| e$B$l$J$$$N$G$I$C$A$,$$$$$+$J!#e(B

e$BMn$A$J$$$H$$$&$3$H$r%F%9%H$7$F$$$k!“$H$$$&$3$H$G$”$l$P!“$5$7e(B
e$B$”$?$C$F8=>u$/$i$$$G$$$$$s$G$9$+$M$(!#e(B
e$B$^$?0c$C$?7k2L$,=P$k%W%i%C%H%U%)!<%`$r8+$D$1$?$i!"$b$&$A$g$Ce(B
e$B$H=q$-J}$r9M$($k$H$$$&$3$H$G!#e(B

| e$B$&$%$`!#e(BAF_INET e$B0J30$Ne(B AF_xxx e$B$C$F$J$$$N$+$J!#e(B

e$BDj?t$NDj5A$O$“$k$s$G$9$1$I!”$"$k$@$1e(B…

e$B$=$l$G$O!#e(B

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

In message “[ruby-dev:28694] test/socket for Windows”
on Jun.07,2006 15:12:25, [email protected] wrote:
| e$B:G6a$Ne(Bsockete$B<~$j$N%F%9%H$r<B9T$7$F$$$F!“e(BWindowse$B$G$$$m$$$mLdBje(B
| e$B$,$”$k$H$$$&$3$H$K5$IU$-$^$7$?!#e(B
| e$B:GBg$NLdBj$Oe(B read_nonblock e$B$He(B write_nonblock e$B$G8G$^$C$A$c$&$He(B
| e$B$$$&$b$N$J$N$G$9$,!“$3$l$O$3$C$A$NLdBj$J$N$G$H$j$”$($:CV$$$Fe(B
| e$B$$-$^$9e(B(e$BCV$$$F$$$$F$$$$OC$G$b$J$$$s$G$9$,e(B…)e$B!#e(B

e$B:#2s$O!"A02sCV$$$F$*$$$?$3$C$A$NOC$NJ}$G$9!#e(B

Windowse$B$G$O!“%U%!%$%k%G%9%/%j%W%?$KBP$7$F%N%s%V%m%C%-%s%0%b!<e(B
e$B%I$r@_Dj$G$-$?$j$O$7$J$$$N$G$9$,!”%=%1%C%H$OFCJL07$$$H$7$F$=e(B
e$B$l$,2DG=$K$J$C$F$$$^$9!#e(B
e$B$7$+$7!"e(BWindowse$B$G$O%U%!%$%k%G%9%/%j%W%?e(B(Ce$B%i%s%?%$%`$,4IM}$7$Fe(B
e$B$$$^$9e(B)e$B$H%=%1%C%He(B(OSe$B$,4IM}$7$F$$$^$9e(B)e$B$OA4$/$NJLJ*$J$N$G!“e(BRuby
e$B$N<BAu$G$O$3$NJU$r$&$^$/$4$^$+$7$F!”%=%1%C%H$H%U%!%$%k%G%9%/e(B
e$B%j%W%?$rL5M}LpM}7k$S$D$1$k$3$H$K$h$C$F!“e(BRubye$BK\BNB&$N%3!<%I$,e(B
e$B$3$NLdBj$r5$$K$;$:$K<h$j07$($k$h$&$K$7$F$”$j$^$9!#e(B

e$B$5$F!“e(BCe$B%i%s%?%$%`$Ne(Bread()/write()e$B$O!”$$$s$A$-%U%!%$%k%G%9%/%je(B
e$B%W%?$r;H$C$F%=%1%C%H$rEO$5$l$F$b$=$l$J$j$K@5$7$/F0:n$7$^$9!#e(B
e$B$7$+$7!“e(Bread()/write()e$B$O85!9%=%1%C%H$,EO$5$l$k$3$H$rA[Dj$7$Fe(B
e$B:n$i$l$F$O$$$J$$$N$G!”%N%s%V%m%C%-%s%0%b!<%I$NB8:_$r$^$C$?$/e(B
e$BCN$j$^$;$s!#e(B
e$B%=%1%C%H$KBP$9$ke(Bread_nonblocke$B!“e(Bwrite_nonblocke$B$b!“7k6IFbIt$G$Oe(B
read()/write()e$B$r;H$C$F$$$k$N$G!”$=$3$G$”$($J$/%V%m%C%/$7$F$7e(B
e$B$^$&$o$1$G$9!#e(B
e$B0J>e$,LdBj$NGX7J$G$9!#e(B

e$B$5$F!“%=%1%C%H$N$3$H$J$s$+CN$i$J$$e(Bread()/write()e$B$r;H$&$+$iLde(B
e$BBj$,H/@8$7$F$k$o$1$G$9$+$i!”$A$c$s$H%=%1%C%H$N$3$H$rCN$C$F$$e(B
e$B$k2?$+$r;H$($P$3$NLdBj$O2sHr$G$-$^$9!#e(B
e$B6qBNE*$K$O!“e(Brecv()/send()e$B$r;H$($P!”%N%s%V%m%C%-%s%0%b!<%I;~$Ke(B
e$B$O$A$c$s$H%V%m%C%/$;$:$KF0:n$7$^$9!#e(B

e$B$3$l$G$a$G$?$7$a$G$?$7!“$H8@$$$?$$$H$3$m$J$N$G$9$,!“e(BWindowse$B$Ke(B
e$B$O%F%-%9%H%b!<%I!”%P%$%J%j%b!<%I$H$$$&$d$C$+$$$J$b$N$,$”$j$^e(B
e$B$7$F!"e(Brecv()/send()e$B$O%F%-%9%H%b!<%I$NB8:_$rCN$j$^$;$s!#e(B

e$B0J>e$rF’$^$($F!"$4AjCL$G$9!#e(B
e$B$$$C$?$$$I$&$9$k$N$,$h$$$G$7$g$&e(B?

(1) Windowse$B$G$Oe(Bread_nonblocke$B!“e(Bwrite_nonblocke$B$OD|$a$me(B
(2) e$B%P%$%J%j%b!<%I$N;~$@$1e(Brecv()/send()e$B$r;H$(e(B
(3) (2)e$B$K2C$($F!”%N%s%V%m%C%-%s%0%b!<%I$N;~$O<+F0E*$K%P%$%J%je(B
e$B%b!<%I$K$7$me(B
(4) (2)e$B$J$s$@$1$I!“$=$b$=$b%=%1%C%H$O%P%$%J%j%b!<%I@lMQ$K$7$me(B
(5) e$B%F%-%9%H%b!<%I$r%5%]!<%H$7$?e(Brecv()/send()e$B$r=q$1e(B
(6) e$B$=$NB>$N0F$,$”$l$P$I$&$>e(B

e$B$=$l$G$O!#e(B

In article [email protected],
“U.Nakamura” [email protected] writes:

e$B$5$F!“e(Btest/socket/test_nonblock.rbe$B$NCf$G$O!“e(B
assert_raise(Errno::EAGAIN) { … }
e$B$H$$$&%A%'%C%/$,B?MQ$5$l$F$$$k$N$G$9$,!”$3$l$Oe(B
assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) { … }
e$B$K$9$Y$-$G$O$J$$$+$H;W$&$N$G$9$,!”@5$7$$$G$7$g$&$+e(B?

e$B$*$)!#0c$&4D6-$,$"$C$?$s$G$9$M!#e(B

e$B$3$3$m$b$A!"e(BErrno::EWOULDBLOCK, Errno::EAGAIN e$B$N=g$,$$$$5$$,e(B
e$B$7$^$9!#e(B

e$B$^$?!“e(BWindowse$B$G$O!“e(Bbinde$B$5$l$F$$$J$$e(Bsockete$B$KBP$9$ke(Brecvfrom()e$B$Oe(B
EINVALe$B$rJV$9$N$G$9$,!”$3$l$O!“e(B
(1) e$BHs>o<1$@!”$*A0$,$J$s$H$+$7$me(B
(2) e$B$=$&$$$&4D6-$@$H$$$&$J$i$=$l$O$=$l$G$”$j$+$Je(B
(3) e$B$=$NB>e(B
e$B$N$$$:$l$@$H9M$($k$Y$-$G$7$g$&$+e(B?

e$BL>A0$,L5$$%=%1%C%H$K$O$I$3$+$i$b%G!<%?$,$/$k$O$:$,$J$$$N$G%G!<e(B
e$B%?$r<u$1<h$i$J$$$O$:$@!"$H$$$&H=CG$J$s$G$9$+$M$'!#e(B

Mac OS X e$B$G$N<:GT$b$=$&$J$s$G$9$,!"L>A0$,L5$$>uBV$H$$$&$N$Oe(B
e$B$J$+$J$+G:$^$7$$$G$9$M!#e(B
http://mput.dip.jp/autobuild/ruby-trunk/log/20060607T110000.gz

e$B$$7$m!"L>A0$,$J$$>uBV$G$O$9$k$O$:$N$J$$A:ne(B (recvfrom e$B$H$+e(B
getsockname e$B$H$+e(B) e$B$O$7$J$$$[$&$,$$$$$N$+$b$7$l$^$;$s!#e(B
e$B%“%W%j%1!<%7%g%s$G$b$9$Y$-$G$O$J$$$N$@$+$i!”%F%9%H$bITMW$H$$e(B
e$B$&$3$H$G!#e(B

e$B$G$b!“Mn$A$J$$$H$$$&$3$H$/$i$$$O%F%9%H$9$k0UL#$,$”$k!"$+$b$7e(B
e$B$l$J$$$N$G$I$C$A$,$$$$$+$J!#e(B

e$B$^$?!"e(BUNIX Sockete$B$,B8:_$7$J$$4D6-$KBP$9$kG[N8$b7g$1$F$$$k$h$&e(B
e$B$K;W$o$l$^$9!#e(B

e$B$9$$$^$;$s!#e(B

— test/socket/test_socket.rb 5 Jun 2006 09:15:46 -0000 1.8
+++ test/socket/test_socket.rb 7 Jun 2006 06:01:43 -0000
@@ -82,2 +82,2 @@ class TestSocket < Test::Unit::TestCase
end
-end
+end if defined?(Socket) && Socket.respond_to?(:sockaddr_un)

e$B$&$%$`!#e(BAF_INET e$B0J30$Ne(B AF_xxx e$B$C$F$J$$$N$+$J!#e(B

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

In message “[ruby-dev:28698] nonblocking socket operation on Windows
(Re: test/socket for Windows)”
on Jun.08,2006 13:31:45, [email protected] wrote:
| e$B$3$l$G$a$G$?$7$a$G$?$7!“$H8@$$$?$$$H$3$m$J$N$G$9$,!“e(BWindowse$B$Ke(B
| e$B$O%F%-%9%H%b!<%I!”%P%$%J%j%b!<%I$H$$$&$d$C$+$$$J$b$N$,$”$j$^e(B
| e$B$7$F!“e(Brecv()/send()e$B$O%F%-%9%H%b!<%I$NB8:_$rCN$j$^$;$s!#e(B
|
|
| e$B0J>e$rF’$^$($F!”$4AjCL$G$9!#e(B
| e$B$$$C$?$$$I$&$9$k$N$,$h$$$G$7$g$&e(B?
|
| (1) Windowse$B$G$Oe(Bread_nonblocke$B!“e(Bwrite_nonblocke$B$OD|$a$me(B
| (2) e$B%P%$%J%j%b!<%I$N;~$@$1e(Brecv()/send()e$B$r;H$(e(B
| (3) (2)e$B$K2C$($F!”%N%s%V%m%C%-%s%0%b!<%I$N;~$O<+F0E*$K%P%$%J%je(B
| e$B%b!<%I$K$7$me(B
| (4) (2)e$B$J$s$@$1$I!“$=$b$=$b%=%1%C%H$O%P%$%J%j%b!<%I@lMQ$K$7$me(B
| (5) e$B%F%-%9%H%b!<%I$r%5%]!<%H$7$?e(Brecv()/send()e$B$r=q$1e(B
| (6) e$B$=$NB>$N0F$,$”$l$P$I$&$>e(B

e$B$H$+=q$$$F$+$i<BAu$rFI$_D>$7$F5$IU$$$?$s$G$9$,!"$=$b$=$b%=%1e(B
e$B%C%H$O4{$K%P%$%J%j%b!<%I@lMQ$G$7$?e(B orz

e$B$J$s$@!"AjCL$9$k$^$G$b$J$$$8$c$se(B…

e$B$=$l$G$O!#e(B

artone$B$G$9!#e(B

| e$B$&$%$`!#e(BAF_INET e$B0J30$Ne(B AF_xxx e$B$C$F$J$$$N$+$J!#e(B

e$BDj?t$NDj5A$O$“$k$s$G$9$1$I!”$“$k$@$1e(B…
e$B0l1~!“e(BAF_INET6e$B$O$”$jF@$k$H;W$$$^$9$,!J$G$b!”;H$C$?$3$H$J$$$7!";H$&M=Dj$be(B
e$B$J$$$1$I!K!D!D!#e(B


arton [email protected]

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

In message “[ruby-dev:28706] Re: test/socket for Windows”
on Jun.10,2006 03:29:57, [email protected] wrote:
| > | e$B$&$%$`!#e(BAF_INET e$B0J30$Ne(B AF_xxx e$B$C$F$J$$$N$+$J!#e(B
| >
| > e$BDj?t$NDj5A$O$“$k$s$G$9$1$I!”$“$k$@$1e(B…
| e$B0l1~!“e(BAF_INET6e$B$O$”$jF@$k$H;W$$$^$9$,!J$G$b!”;H$C$?$3$H$J$$$7!";H$&M=Dj$be(B
| e$B$J$$$1$I!K!D!D!#e(B

e$B<B$Oe(Bmswin32e$B$G$Oe(BIPv6e$B;H$($k$h$&$K$7$F$"$j$^$;$s!#e(B
e$B$H$$$&$N$O!"e(BIPv6e$B;H$($k$h$&$K$7$F%3%s%Q%$%k$7$?%P%$%J%j$O!"e(BIPv6
e$B;H$($J$$$H$3$m$K;}$C$F$$$/$HF0$+$J$/$J$k$N$Ge(B…

e$BC/$b$3$l$K6l>p=P$5$J$$$+$iK:$l$F$?e(B…

e$B$=$l$G$O!#e(B