methods=
sublibraries=
requires=
classes=BasicSocket,IPSocket,SOCKSSocket,Socket,Socket=Constants,TCPServer,TCPSocket,UDPSocket,UNIXServer,UNIXSocket
is_sublibrary=false

socket ϥץȤ̿ (ץ̿ۥȴ̿) ¸ޤ

=== 饹

 * [[c:BasicSocket]]: åȤɽݥ饹
 * [[c:IPSocket]]: 󥿡ͥåȥɥᥤ󥽥åȤݥ饹
 * [[c:TCPSocket]]: 󥿡ͥåȥɥᥤΥȥ꡼෿åȤΥ饹
 * [[c:TCPServer]]: TCP/IPȥ꡼෿³Υ¦ΥåȤΥ饹
 * [[c:SOCKSSocket]]: TCPSocket  SOCKS б饹
 * [[c:UDPSocket]]: 󥿡ͥåȥɥᥤΥǡ෿åȤΥ饹
 * [[c:UNIXSocket]]: UnixɥᥤΥȥ꡼෿åȤΥ饹
 * [[c:UNIXServer]]: Unixȥ꡼෿³Υ¦ΥåȤΥ饹
 * [[c:Socket]]: ٥륽åȥ󥿡ե

=== ⥸塼

 * [[c:Socket::Constants]]

=== åȥɥ쥹

åȤȤΤ̿ϩüǤ
Ȥ 11 ̿Ǥϡޤ̿ϩξüˤҤȤĤĥåȤĤꡢ
ΥåȤ³뤳Ȥˤä̿ϩΩߤ̿Ǥ褦ˤʤޤ
³ˡΥåȤˤ⤦ΥåȤξ򶵤Ƥɬפޤ
ξꤹΤåȥɥ쥹Ǥ

åȥɥ쥹ϥåȤμˤäȤۤʤޤ
Ȥ TCP Ǥ IP ɥ쥹ȥݡֹǤ
Unix ɥᥤ󥽥åȤǤϥåȥեؤѥ̾Ǥ

[[c:IPSocket]]  [[c:UNIXSocket]] ʲΥ饹ؤǤϡ
虜虜åȥɥ쥹ȤˤޤȤʤƤ褤褦
åȥɥ쥹Ȥľܰ᥽åɤѰդƤޤ

ޤ[[c:IPSocket]] ʲǤ IP ɥ쥹ȥݡֹλϡ
ͤɽǤʤۥ̾䥵ӥ̾Ȥޤ
ˤĤƤϰʲΡ֥ۥȻפȡ֥ӥפ򻲾ȤƤ

ޤC Υ٥Ρ֥åȥɥ쥹¤Τ pack ʸפѤǤޤ
ϼ٥륽åȥ󥿡ե ([[c:Socket]]) Ѥޤ

==== ۥȻ

AF_INET ʥåȤˤƥۥȤꤹˤϰʲΤ줫
ηꤷޤ

  * ۥ̾ (: "localhost")
  * octet decimalˤIPɥ쥹(ʸ) (: "127.0.0.1")
  * ʸ (""), ʸ "<any>" - INADDR_ANY
  * ʸ "<broadcast>" - INADDR_BROADCAST
  * IPɥ쥹ɽ 32bit  (: 0x7f000001)

==== ӥ

ӥꤹˤϰʲΤ줫ηꤷޤ

  * ݡֹ(ޤʸ) (: 21, "21")
  * ӥ̾ (: "ftp")

==== åȥɥ쥹¤Τ pack ʸ

åȥɥ쥹¤ΤȤϡC ι¤ struct sockaddr_in (IPv4)
 struct sockaddr_un (Unix ɥᥤ)ؤޤ
[[c:Socket]] 饹ʤɥåȤ٥륤󥿥եѤޤ

[[m:Socket.pack_sockaddr_in]],
[[m:Socket.unpack_sockaddr_in]] Ȥä᥽åɤˤꡢ
㤨СʲΤ褦ˤƤʸ뤳Ȥޤ

  require 'socket'
  p Socket.pack_sockaddr_in("echo", "127.0.0.1")
  => "\002\000\000\a\177\000\000\001\000\000\000\000\000\000\000\000"


=== ۥ̾ IP ɥ쥹Ѵ

ۥ̾ IP ɥ쥹ؤѴ () Ԥ᥽åɤϰʲΤΤѰդƤޤ

  * [[m:IPSocket.getaddress]]("www.ruby-lang.org") => "210.163.138.100"
  * [[m:TCPSocket.gethostbyname]]("www.ruby-lang.org") => ["beryllium.ruby-lang.org", [], 2, "210.163.138.100"]
  * [[m:Socket.gethostbyname]]("www.ruby-lang.org") => ["beryllium.ruby-lang.org", [], 2, "\322\243\212d"]
  * [[m:Socket.getaddrinfo]]("www.ruby-lang.org", "http") => [["AF_INET", 80, "beryllium.ruby-lang.org", "210.163.138.100", 2, 1, 6]]

դ IP ɥ쥹ۥ̾ؤѴ (հ) Ԥ᥽åɤϰʲΤΤѰդƤޤ

  * [[m:Socket.getnameinfo]]([nil, nil, nil, "210.163.138.100"]) => ["beryllium.ruby-lang.org", 0]


ޤ[[lib:resolv]] 饤֥ѤǤޤ
