📄 4.1.htm
字号:
<TABLE cellPadding=5 width=515 border=0>
<TBODY>
<TR>
<TD align=left></TD>
<TD align=right></TD></TR></TBODY></TABLE>
<P class=docText><TT>IPSocket</TT><A name=IXT-4-128228></A><A
name=ruby-IDXTERM-1511></A> class is a base class of
<TT>TCPSocket</TT> and <TT>UDPSocket</TT>. <TT>IPSocket</TT>
class provides common behavior among Internet Protocol (IP)
sockets. Sockets classes in Ruby support IPv6, if the native
platform supports it. </P><A name=ch04-10-fm2xml></A>
<H4 class=docRefsectTitle>Required Library</H4>
<P class=docText>require 'socket'</P><A
name=ch04-11-fm2xml></A>
<H4 class=docRefsectTitle>Inherited Class</H4>
<P class=docText><TT>BasicSocket</TT><A name=IXT-4-128229></A>
</P><A name=ch04-12-fm2xml></A>
<H4 class=docRefsectTitle>Class Method</H4><A
name=IXT-4-128230></A><A name=IXT-4-128231></A>
<DL class=docList>
<DT><SPAN class=docPubcolor><SPAN class=docPubcolor><SPAN
class=docMonofont>IPSocket::getaddress(</SPAN></SPAN> <A
name=IXT-4-128230></A><TT><I>host</I></TT><SPAN
class=docPubcolor><SPAN class=docMonofont>)</SPAN></SPAN>
</SPAN>
<DD>
<P class=docList><A name=IXT-4-128231></A>Returns the IP
address of the specified <TT><I>host</I></TT>. The IP
address is returned as a string such as <TT>127.10.0.1</TT>
(IPv4) or <TT>::1</TT> (IPv6). </P></DD></DL><A
name=ch04-13-fm2xml></A>
<H4 class=docRefsectTitle>Instance Methods</H4><A
name=IXT-4-128232></A><A name=IXT-4-128233></A><A
name=IXT-4-128234></A>
<DL class=docList>
<DT><SPAN class=docPubcolor><TT><I>s</I></TT><A
name=IXT-4-128232></A><SPAN class=docPubcolor><SPAN
class=docMonofont>.addr</SPAN></SPAN> </SPAN>
<DD>
<P class=docList>Returns an array containing information on
the socket connection (<TT>AF_INET</TT>, port, hostname, and
IP address) </P><PRE>s = TCPSocket.open("www.ruby-lang.org", "http")
s.addr# => ["AF_INET", 4030, "dhcp198.priv.netlab.jp",
"192.168.1.198"]</PRE>
<DT><SPAN class=docPubcolor><TT><I>s</I></TT><A
name=IXT-4-128233></A><SPAN class=docPubcolor><SPAN
class=docMonofont>.peeraddr</SPAN></SPAN> </SPAN>
<DD>
<P class=docList>Returns an array containing information on
the peer socket in the same format as
<TT><I>s</I></TT><TT>.addr</TT> </P><PRE>s = TCPSocket.open("www.ruby-lang.org", "daytime")
s.recvfrom(255)
# => ["Wed Aug 1 00:30:54 2001\r\n", ["AF_INET", 13, "www",
"210.251.121.214"]]</PRE>
<DT><SPAN class=docPubcolor><TT><I>s</I></TT><A
name=IXT-4-128234></A><SPAN class=docPubcolor><SPAN
class=docMonofont>.recvfrom(</SPAN></SPAN>
<TT><I>len</I></TT><SPAN class=docPubcolor><SPAN
class=docMonofont>[,</SPAN></SPAN>
<TT><I>flags</I></TT><SPAN class=docPubcolor><SPAN
class=docMonofont>])</SPAN></SPAN> </SPAN>
<DD>
<P class=docList>Receives data and returns it in an array
that also includes information on the sender's socket in the
same format as <TT><I>s</I></TT><TT>.addr</TT>
</P></DD></DL><A name=ch04-14-fm2xml></A><A
name=IXT-4-128235></A><A name=IXT-4-128236></A><A
name=IXT-4-128237></A><A name=IXT-4-128238></A><A
name=IXT-4-128239></A><A name=IXT-4-128240></A><A
name=IXT-4-128241></A><A name=IXT-4-128242></A><A
name=IXT-4-128243></A><A name=IXT-4-128244></A><A
name=IXT-4-128245></A>
<TABLE cellPadding=5 width=515 border=0>
<TBODY>
<TR>
<TD align=left><B><I>UDPSocket</I></B></TD>
<TD align=right><I>UDP socket class
</I></TD></TR></TBODY></TABLE>
<HR align=left width=515 color=black noShade SIZE=3>
<TABLE cellPadding=5 width=515 border=0>
<TBODY>
<TR>
<TD align=left></TD>
<TD align=right></TD></TR></TBODY></TABLE>
<P class=docText><TT>UDPSocket</TT><A name=IXT-4-128235></A><A
name=IXT-4-128236></A> is a class for User Datagram Protocol
(UDP), which is a connectionless, unreliable protocol. </P><A
name=ch04-15-fm2xml></A>
<H4 class=docRefsectTitle>Required Library</H4>
<P class=docText>require 'socket'</P><A
name=ch04-16-fm2xml></A>
<H4 class=docRefsectTitle>Inherited Class</H4><A
name=IXT-4-128237></A>
<P class=docText><TT>IPSocket</TT><A name=IXT-4-128238></A>
</P><A name=ch04-17-fm2xml></A>
<H4 class=docRefsectTitle>Class Methods</H4><A
name=IXT-4-128239></A><A name=IXT-4-128240></A><A
name=IXT-4-128241></A>
<DL class=docList>
<DT><SPAN class=docPubcolor><SPAN class=docPubcolor><SPAN
class=docMonofont>UDPSocket::new([</SPAN></SPAN> <A
name=IXT-4-128240></A><TT><I>socktype</I></TT><SPAN
class=docPubcolor><SPAN
class=docMonofont>=Socket::AF_INET])</SPAN></SPAN> </SPAN>
<DD>
<P class=docList></P>
<DT><SPAN class=docPubcolor><SPAN class=docPubcolor><SPAN
class=docMonofont>UDPSocket::open([</SPAN></SPAN> <A
name=IXT-4-128241></A><TT><I>socktype</I></TT><SPAN
class=docPubcolor><SPAN
class=docMonofont>=Socket::AF_INET])</SPAN></SPAN> </SPAN>
<DD>
<P class=docList>Creates a UDP datagram socket</P></DD></DL><A
name=ch04-18-fm2xml></A>
<H4 class=docRefsectTitle>Instance Methods</H4><A
name=IXT-4-128242></A><A name=IXT-4-128243></A><A
name=IXT-4-128244></A><A name=IXT-4-128245></A>
<DL class=docList>
<DT><SPAN class=docPubcolor><TT><I>s</I></TT><A
name=IXT-4-128242></A><SPAN class=docPubcolor><SPAN
class=docMonofont>.bind(</SPAN></SPAN>
<TT><I>host</I></TT><SPAN class=docPubcolor><SPAN
class=docMonofont>,</SPAN></SPAN> <TT><I>port</I></TT><SPAN
class=docPubcolor><SPAN class=docMonofont>)</SPAN></SPAN>
</SPAN>
<DD>
<P class=docList>Binds the socket to <TT><I>port</I></TT> on
<TT><I>host</I></TT>. <TT><I>host</I></TT> may be an empty
string ("") for <TT>INADDR_ANY</TT> or
<TT><broadcast></TT> for <TT>INADDR_BROADCAST</TT>.
</P>
<DT><SPAN class=docPubcolor><TT><I>s</I></TT><A
name=IXT-4-128243></A><SPAN class=docPubcolor><SPAN
class=docMonofont>.connect(</SPAN></SPAN>
<TT><I>host</I></TT><SPAN class=docPubcolor><SPAN
class=docMonofont>,</SPAN></SPAN> <TT><I>port</I></TT><SPAN
class=docPubcolor><SPAN class=docMonofont>)</SPAN></SPAN>
</SPAN>
<DD>
<P class=docList>Connects the socket to <TT><I>port</I></TT>
on <TT><I>host</I></TT>. <TT><I>host</I></TT> may be an
empty string ("") for <TT>INADDR_ANY</TT> or
<TT><broadcast></TT> for <TT>INADDR_BROADCAST</TT>.
</P>
<DT><SPAN class=docPubcolor><TT><I>s</I></TT><A
name=IXT-4-128244></A><SPAN class=docPubcolor><SPAN
class=docMonofont>.send(</SPAN></SPAN>
<TT><I>mesg</I></TT><SPAN class=docPubcolor><SPAN
class=docMonofont>,</SPAN></SPAN> <TT><I>flags</I></TT><SPAN
class=docPubcolor><SPAN class=docMonofont>[,</SPAN></SPAN>
<TT><I>to</I></TT><SPAN class=docPubcolor><SPAN
class=docMonofont>])</SPAN></SPAN> </SPAN>
<DD>
<P class=docList></P>
<DT><SPAN class=docPubcolor><TT><I>s</I></TT><A
name=IXT-4-128245></A><SPAN class=docPubcolor><SPAN
class=docMonofont>.send(</SPAN></SPAN>
<TT><I>mesg</I></TT><SPAN class=docPubcolor><SPAN
class=docMonofont>,</SPAN></SPAN> <TT><I>flags</I></TT><SPAN
class=docPubcolor><SPAN class=docMonofont>[,</SPAN></SPAN>
<TT><I>host</I></TT><SPAN class=docPubcolor><SPAN
class=docMonofont>,</SPAN></SPAN> <TT><I>port</I></TT><SPAN
class=docPubcolor><SPAN class=docMonofont>])</SPAN></SPAN>
</SPAN>
<DD>
<P class=docList>Sends data on a socket <TT><I>s</I></TT>,
returning the length of the data sent. If only two arguments
are specified, the destination is assumed to be the port of
the existing connection. Otherwise, it may be specified
using a <TT>struct sockaddr</TT> when calling the method
with three arguments or by indicating host and port when
specifying four arguments. </P></DD></DL><A
name=ch04-19-fm2xml></A><A name=IXT-4-128246></A><A
name=IXT-4-128247></A><A name=IXTR3-26></A><A
name=IXT-4-128248></A><A name=IXT-4-128249></A>
<TABLE cellPadding=5 width=515 border=0>
<TBODY>
<TR>
<TD align=left><B><I>TCPSocket</I></B></TD>
<TD align=right><I>TCP/IP socket class
</I></TD></TR></TBODY></TABLE>
<HR align=left width=515 color=black noShade SIZE=3>
<TABLE cellPadding=5 width=515 border=0>
<TBODY>
<TR>
<TD align=left></TD>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -