
|
-
-
$B%=%1%C%HA`:n$N;XDj$N$?$a$NDj?t$rDj5A$7$?%b%8%e!<%k!%$3$N%b%8%e!<(B
$B%k$r%$%s%/%k!<%I$9$l$P!$Dj?t(B(AF_INET$B$J$I(B)$B$rD>@\;2>H$G$-$^$9!%(B
-
-
$B%=%1%C%H$rI=$9Cj>]%/%i%9!#6qBNE*$J%=%1%C%HA`:n$O%5%V%/%i%9$G(B
$BDj5A$5$l$^$9!#(B
$BNc$($P%$%s%?!<%M%C%H%I%a%$%s%9%H%j!<%`%=%1%C%H$N>l9g$O(B
TCPSocket $B$rMQ$$$^$9!#(B
-
$B%9!<%Q!<%/%i%9(B:
-
-
IO
-
$B%a%=%C%I(B:
-
-
getsockname
-
$B%=%1%C%H$N>pJs$rgetsockname(2)$B$r;2>H$N$3$H!#(B
-
getsockopt(level, optname)
-
$B%=%1%C%H$N%*%W%7%g%s$rgetsockopt(2)
$B$r;2>H$N$3$H!#
-
getpeername
-
$B@\B3$NAjpJs$rgetpeername(2)$B$r;2>H$N(B
$B$3$H!#(B
-
recv(len[, flags])
-
$B%=%1%C%H$+$i%G!<%?$rlen$B$Oflags$B$K$D$$$F$O(Brecv(2)$B$r;2>H!%(Bflags$B$N(B
$B%G%U%)%k%HCM$O(B0$B$G$9!%(Bflags$B$N;XDj$KI,MW$JDj?t$O(B
Socket$B%/%i%9$GDj5A$5$l$F$$$^$9!%(B($BNc(B: Socket::SO_LINGER)
-
send(mesg, flags[, to])
-
$B%=%1%C%H$r2p$7$F%G!<%?$rAw$j$^$9!%(Bflags$B$K4X$7$F$O(B
send(2)$B$r;2>H$7$F$/$@$5$$!%(Bconnect
$B$7$F$$$J$$%=%1%C%H$KBP$7$F$OAw$j@h$G$"$k(Bto$B$r;XDj(B
$B$9$kI,MW$,$"$j$^$9!%
-
setsockopt(level, optname, optval)
-
$B%=%1%C%H$N%*%W%7%g%s$r@_Dj$7$^$9!%(Bsetsockopt(2)
$B$r;2>H$N$3$H!%(B
-
shutdown([how])
-
$B%=%1%C%H$N0J9_$N@\B3$r=*N;$5$;$^$9!%(Bhow$B$,(B0$B$G$"$k(B
$B;~!$0J9_$Nhow$B$,(B2$B$N;~$K$O!$$=$l0J9_$NAw?.!$how$B$r>JN,$9$k$H(B2$B$r;XDj$7$?$3$H$K$J$j$^$9!%(B
shutdown(2)$B$r;2>H!%(B
-
-
$B%$%s%?!<%M%C%H%I%a%$%s%=%1%C%H$N%/%i%9!%DL>o$N(B
IO $B%/%i%9$N%5%V%/%i%9$HF1(B
$BMM$NF~=PNO$,$G$-$^$9!%(B
-
$B%9!<%Q!<%/%i%9(B:
-
-
BasicSocket
-
$B%/%i%9%a%=%C%I(B:
-
-
getaddress(host)
-
$B%[%9%HL>$+$i%[%9%H$N%"%I%l%9$rJV$7$^$9!%%[%9%H$N%"%I%l%9$OJ8(B
$B;zNs$O(Boctet decimal$B$NJ8;zNs(B($BNc(B:127.0.0.1)$B$G$9!%(B
-
$B%a%=%C%I(B:
-
-
addr
-
$B%=%1%C%H$N@\B3>pJs$rI=$9G[Ns$rJV$7$^$9!%G[Ns$N3FMWAG$OBh(B1$BMW(B
$BAG$,J8;zNs(B "AF_INET"$B!$Bh(B2$BMWAG$,(Bport$BHV9f!$Bh(B3$BMWAG$,%[%9%H$rI=(B
$B$9J8;zNs!$Bh(B4$BMWAG$,%[%9%H$N(BIP$B%"%I%l%9$rI=$9J8;zNs(B(octet
decimal)$B$G$9!%(B
-
peeraddr
-
$B@\B3AjpJs$rI=$9G[Ns$rJV$7$^$9!%G[Ns$N3FMWAG$O(B
addr $B%a%=%C%I$,JV$9G[Ns(B
$B$HF1$8$G$9!%(B
-
-
$B%$%s%?!<%M%C%H%I%a%$%s$N%9%H%j!<%`7?%=%1%C%H$N%/%i%9!%DL>o$N(B
IO $B%/%i%9$N%5%V%/%i%9$HF1(B
$BMM$NF~=PNO$,$G$-$^$9!%$3$N%/%i%9$K$h$C$F%=%1%C%H$rMQ$$$?%/%i(B
$B%$%"%s%H$r4JC1$K5-=R$G$-$k$h$&$K$J$j$^$9!%%f!<%6$NF~NO$r$=$N(B
$B$^$^%5!<%P$KE>Aw$9$k%W%m%0%i%`$O0J2<$N$h$&$K$J$j$^$9!%(B
require "socket"
port = if ARGV.size > 0 then ARGV.shift else 4444 end
print port, "\n"
s = TCPSocket.open("localhost", port)
while gets
s.write($_)
print(s.gets)
end
s.close
-
$B%9!<%Q!<%/%i%9(B:
-
-
IPSocket
-
$B%/%i%9%a%=%C%I(B:
-
-
open(host, service)
-
-
new(host, service)
-
host$B$G;XDj$7$?%[%9%H$N(Bservice$B$G;XDj$7$?%]!<%H$H@\B3$7$?%=%1%C(B
$B%H$rJV$7$^$9!%(Bhost$B$O%[%9%HL>!$$^$?$O(Boctet decimal
$B$K$h$k%$%s%?!<%M%C%H%"%I%l%9$r<($9J8;zNs!$(Bservice
$B$O(B/etc/services($B$^$?$O(BNIS)$B$KEPO?$5$l$F$$$k%5!<(B
$B%S%9L>$+%]!<%HHV9f$G$9!%(B
-
gethostbyname(host)
-
$B%[%9%HL>$^$?$O(BIP$B%"%I%l%9(B($B@0?t$^$?$O(B"127.0.0.1"
$B$N$h$&$JJ8;zNs(B)$B$+$i%[%9%H$N>pJs$rJV$7$^$9!%%[%9%H>pJs$O!$%[(B
$B%9%HL>!$%[%9%H$NJLL>$NG[Ns!$%[%9%H$N%"%I%l%9%?%$%W!$%[%9%H$N(B
$B%"%I%l%9$r3FMWAG$H$9$kG[Ns$G$9!%%[%9%H$N%"%I%l%9$O(Boctet
decimal$B$NJ8;zNs(B("127.0.0.1" $B$N$h$&$JJ8;zNs(B)$B$G$9!%(B
-
$B%a%=%C%I(B:
-
-
recvfrom(len[, flags])
-
recv $B$HF1MM$K%=%1%C%H$+$i%G!<%?$rIPSocket#addr$B;2>H(B)$B$N%Z%"$G$9!%0z?t$K$D(B
$B$$$F$O(Brecv$B$HF1MM$G$9!%(B
-
-
TCP/IP$B%9%H%j!<%`7?@\B3$N%5!<%PB&$N%=%1%C%H$N%/%i%9!%$3$N%/%i(B
$B%9$K$h$C$F4JC1$K%=%1%C%H$rMxMQ$7$?%5!<%P$N%W%m%0%i%_%s%0$,$G(B
$B$-$^$9!%Nc$($P(Becho$B%5!<%P$O0J2<$N$h$&$K$J$j$^$9!%(B
require "socket"
gs = TCPServer.open(0)
socks = [gs]
addr = gs.addr
addr.shift
printf("server is on %d\n", addr.join(":"))
while TRUE
nsock = select(socks)
next if nsock == nil
for s in nsock[0]
if s == gs
socks.push(s.accept)
print(s, " is accepted\n")
else
if s.eof?
print(s, " is gone\n")
s.close
socks.delete(s)
else
str = s.gets
s.write(str)
end
end
end
end
Thread $B$r;H$($P$b$C$HC;$/$J$j$^$9!%(B
require "socket"
gs = TCPServer.open(0)
addr = gs.addr
addr.shift
printf("server is on %d\n", addr.join(":"))
while TRUE
ns = gs.accept
print(ns, " is accepted\n")
Thread.start do
s = ns # save to dynamic variable
while s.gets
s.write($_)
end
print(s, " is gone\n")
s.close
end
end
-
$B%9!<%Q!<%/%i%9(B:
-
-
TCPSocket
-
$B%/%i%9%a%=%C%I(B:
-
-
new([host, ]service)
-
-
open([host, ]service)
-
$B?7$7$$%5!<%P!<@\B3$r%*!<%W%s$7$^$9!%(Bservice$B$O(B
/etc/services($B$^$?$O(BNIS)$B$KEPO?$5$l$F$$$k%5!<%S(B
$B%9L>$+%]!<%HHV9f$G;XDj$7$^$9!%(Bhost$B$r;XDj$7$?;~$O(B
$B;XDj$7$?%[%9%H$+$i$N@\B3$@$1$rJN,;~$OA4$F$N%[(B
$B%9%H$+$i$N@\B3MW5a$r
-
$B%a%=%C%I(B:
-
-
accept
-
$B%/%i%$%"%s%H$+$i$N@\B3MW5a$rTCPSocket$B$N%$%s%9%?%s%9$rJV$7$^$9!%(B
-
-
UDP/IP$B%G!<%?%0%i%`7?%=%1%C%H$N%/%i%9!%(B
-
$B%9!<%Q!<%/%i%9(B:
-
-
IPSocket
-
$B%/%i%9%a%=%C%I(B:
-
-
open()
-
-
new()
-
$B?7$7$$(BUDP$B%=%1%C%H$rJV$7$^$9!%(B
-
$B%a%=%C%I(B:
-
-
bind(host, port)
-
$B%=%1%C%H$r(Bhost$B$N(Bport$B$K7k9g$7$^$9!%(B
-
connect(host, port)
-
$B%=%1%C%H$r(Bhost$B$N(Bport$B$K(Bconnect$B$7$^$9!%(B
-
recvfrom(len[, flags])
-
recv $B$HF1MM$K%=%1%C%H$+$i%G!<%?$rIPSocket#addr$B;2>H(B)$B$N%Z%"$G$9!%0z?t$K$D(B
$B$$$F$O(Brecv$B$HF1MM$G$9!%(B
-
send(mesg, flags[, host, port])
-
$B%=%1%C%H$r2p$7$F%G!<%?$rAw$j$^$9!%(Bflags$B$K4X$7$F$O(B
send(2)$B$r;2>H$7$F$/$@$5$$!%(Bconnect
$B$7$F$$$J$$%=%1%C%H$KBP$7$F$OAw$j@h$r;XDj$9$k$?$a(Bhost
$B$H(Bport$B$r;XDj$9$kI,MW$,$"$j$^$9!%
-
-
UNIX$B%I%a%$%s$N%9%H%j!<%`7?%=%1%C%H$N%/%i%9!%DL>o$N(B
IO $B%/%i%9$N%5%V%/%i%9$HF1MM$N(B
$BF~=PNO$,$G$-$^$9!%(B
-
$B%9!<%Q!<%/%i%9(B:
-
-
BasicSocket
-
$B%/%i%9%a%=%C%I(B:
-
-
open(path)
-
-
new(path)
-
path$B$G;XDj$7$?%Q%9L>$rMQ$$$F@\B3$7$?%=%1%C%H$rJV(B
$B$7$^$9!%(B
-
$B%a%=%C%I(B:
-
-
addr
-
$B%=%1%C%H$N@\B3>pJs$rI=$9G[Ns$rJV$7$^$9!%G[Ns$N3FMWAG$OBh(B1$BMW(B
$BAG$,J8;zNs(B "AF_UNIX"$B!$Bh(B2$BMWAG$,%Q%9$rI=$9J8;zNs$G$9!%(B
-
path
-
UNIX$B%=%1%C%H$N%Q%9$rJV$7$^$9!%(B
-
peeraddr
-
$B@\B3AjpJs$rI=$9G[Ns$rJV$7$^$9!%G[Ns$N3FMWAG$O(B
addr $B%a%=%C%I$,JV$9G[Ns(B
$B$HF1$8$G$9!%(B
-
recvfrom(len[, flags])
-
recv $B$HF1MM$K%=%1%C%H$+$i%G!<%?$r
-
-
UNIX$B%9%H%j!<%`7?@\B3$N%5!<%PB&$N%=%1%C%H$N%/%i%9!%(B
-
$B%9!<%Q!<%/%i%9(B:
-
-
UNIXSocket
-
$B%a%=%C%I(B:
-
-
accept
-
$B%/%i%$%"%s%H$+$i$N@\B3MW5a$rUNIXSocket$B$N%$%s%9%?%s%9$rJV$7$^$9!%(B
-
-
$B%=%1%C%H$=$N$b$N$KBP$9$k%7%9%F%`%3!<%k%l%Y%k$N%"%/%;%9$rDs6!(B
$B$9$k%/%i%9!%(BPerl$B$N%=%1%C%H$KBP$9$k%"%/%;%9$HF1%l%Y%k$N5!G=$r(B
$BDs6!$7$F$^$9!%$3$N%/%i%9$G$O%=%1%C%H%"%I%l%9$O(Bpack$B$5$l$?J8;z(B
$BNs$G;XDj$7$^$9!%(B
$B0lHLE*$J%=%1%C%H%W%m%0%i%_%s%0$O$h$j9b%l%Y%k$N(B
TCPSocket $B%/%i%9$d(B
TCPServer $B%/%i%9$rMQ$$(B
$B$F9T$o$l$k$3$H$,B?$/!$$3$N%/%i%9$O$"$^$jMQ$$$i$l$^$;$s!%(B
-
$B%9!<%Q!<%/%i%9(B:
-
-
BasicSocket
-
$B%/%i%9%a%=%C%I(B:
-
-
open(domain, type, protocol)
-
-
new(domain, type, protocol)
-
$B?7$7$$%=%1%C%H$r@8@.$7$^$9!%(Bdomain$B!$(B
type$B!$(Bprotocol$B$O%$%s%/%k!<%I%U%!%$%k$K(B
$B$"$kDj?t$G;XDj$7$^$9!%$[$H$s$I$NDj?t$O(BSocket $B%/(B
$B%i%9$G%/%i%9Dj?t$H$7$FDj5A$5$l$F$$$^$9!%(Bdomain$B$H(B
type$B$K4X$7$F$O!$J8;zNs$G$b;XDj$G$-$^$9$,!$J8;zNs(B
$B$G$9$Y$F$r5!G=$r;XDj$G$-$kJ]>Z$O$"$j$^$;$s!%(B
-
for_fd(fd)
-
$B%U%!%$%k%G%#%9%/%j%W%?(Bfd$B$KBP$9$k?7$7$$%=%1%C%H(B
$B$r@8@.$7$^$9!%(B
-
pair(domain, type, protocol)
-
-
socketpair(domain, type, protocol)
-
$BAj8_$K7k9g$5$l$?%=%1%C%H$N%Z%"$r4^$`(B2$BMWAG$NG[Ns$rJV$7$^$9!%(B
$B0z?t$N;XDj$O(BSocket.open $B$HF1$8$G$9!%(B
-
gethostbyname(host)
-
$B%[%9%HL>$^$?$O(BIP$B%"%I%l%9(B($B@0?t$^$?$O(B"127.0.0.1"
$B$N$h$&$JJ8;zNs(B)$B$+$i%[%9%H$N>pJs$rJV$7$^$9!%%[%9%H>pJs$O!$%[(B
$B%9%HL>!$%[%9%H$NJLL>$NG[Ns!$%[%9%H$N%"%I%l%9%?%$%W!$%[%9%H$N(B
$B%"%I%l%9$r3FMWAG$H$9$kG[Ns$G$9!%%[%9%H$N%"%I%l%9$O(Bpack$B$5$l$?(B
$BJ8;zNs$G!$(Bunpack("CCCC")$B$GJ,2r$G$-$^$9!%(B
-
gethostbyaddr(host)
-
sockaddr$B9=B$BN$r%Q%C%/$7$?J8;zNs$+$i%[%9%H>pJs$rJV$7$^$9!%(B
$B%[%9%H>pJs$N9=B$$O(Bgethostbyname$B$HF1$8$G$9!%(B
-
getservbyname(service[, proto])
-
service, proto$B$KBP1~$9$k%]!<%HHV9f$rJV(B
$B$7$^$9!%(Bproto$B$N>JN,CM$O(B"tcp"$B$G$9!%(B
-
$B%a%=%C%I(B:
-
-
accept
-
$B?7$7$$@\B3$raccept(2)$B$r;2>H!%(B
-
bind(addr)
-
$B%=%1%C%H$r(Baddr$B$K7k9g$7$^$9!%(Bbind(2)
$B$HF1$8F/$-$r$7$^$9!%(Baddr$B$O(Bpack$B$5$l$?%=%1%C%H%"%I(B
$B%l%99=B$BN$G$9!%(B
-
connect(addr)
-
connect(2)$B$HF1$8F/$-$r$7$^$9!%(Baddr$B$O(B
pack$B$5$l$?%=%1%C%H%"%I%l%99=B$BN$G$9!%(B
-
listen(backlog)
-
listen(2)$B$HF1$8F/$-$r$7$^$9!%(B
-
recvfrom(len[, flags])
-
recv $B$HF1MM$K%=%1%C%H$+$i%G!<%?$r
AF_INET$B$J%=%1%C%H$K$*$$$F%[%9%H$r;XDj$9$kJ8;zNs$O0J2<$N$$$:(B
$B$l$+$N7A<0$G;XDj$7$^$9!%(B
- $B%[%9%HL>(B
- octet decimal$B$K$h$k(BIP$B%"%I%l%9(B
- $B6uJ8;zNs(B -
INADDR_ANY $B$KAjEv(B
-
"<broadcast>" - INADDR_BROADCAST $B$KAjEv(B
|