📄 4.1.htm
字号:
<TD align=right></TD></TR></TBODY></TABLE>
<P class=docText><TT>TCPSocket</TT><A name=IXT-4-128246></A>
is a class for Transmission Control Protocol (TCP), which is
connection-oriented, reliable protocol. </P><A
name=ch04-20-fm2xml></A>
<H4 class=docRefsectTitle>Required Library</H4>
<P class=docText>require 'socket'</P><A
name=ch04-21-fm2xml></A>
<H4 class=docRefsectTitle>Example</H4><PRE>require 'socket'
host=(if ARGV.length == 2; ARGV.shift; else "localhost"; end)
print("Trying ", host, " ...")
STDOUT.flush
s = TCPsocket.open(host, ARGV.shift)
print(" done\n")
print("addr: ", s.addr.join(":"), "\n")
print("peer: ", s.peeraddr.join(":"), "\n")
while gets( )
s.write($_)
print(s.readline)
end
s.close</PRE><A name=ch04-22-fm2xml></A>
<H4 class=docRefsectTitle>Inherited Class</H4>
<P class=docText><TT>IPSocket</TT><A name=IXT-4-128247></A>
</P><A name=ch04-23-fm2xml></A>
<H4 class=docRefsectTitle>Class Methods</H4><A
name=IXTR3-26></A><A name=IXT-4-128248></A><A
name=IXT-4-128249></A>
<DL class=docList>
<DT><SPAN class=docPubcolor><SPAN class=docPubcolor><SPAN
class=docMonofont>TCPSocket::new(</SPAN></SPAN> <A
name=IXT-4-128248></A><TT><I>host</I></TT><SPAN
class=docPubcolor><SPAN class=docMonofont>,</SPAN></SPAN>
<TT><I>service</I></TT><SPAN class=docPubcolor><SPAN
class=docMonofont>)</SPAN></SPAN> </SPAN>
<DD>
<P class=docList></P>
<DT><SPAN class=docPubcolor><SPAN class=docPubcolor><SPAN
class=docMonofont>TCPSocket::open(</SPAN></SPAN> <A
name=IXT-4-128249></A><TT><I>host</I></TT><SPAN
class=docPubcolor><SPAN class=docMonofont>,</SPAN></SPAN>
<TT><I>service</I></TT><SPAN class=docPubcolor><SPAN
class=docMonofont>)</SPAN></SPAN> </SPAN>
<DD>
<P class=docList>Opens a TCP connection to
<TT><I>host</I></TT> for <TT><I>service</I></TT>, which may
also be a port number </P></DD></DL><A
name=ch04-24-fm2xml></A><A name=IXT-4-128250></A><A
name=IXT-4-128251></A><A name=IXT-4-128252></A>
<TABLE cellPadding=5 width=515 border=0>
<TBODY>
<TR>
<TD align=left><B><I>TCPServer</I></B></TD>
<TD align=right><I>TCP/IP server 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>TCPServer</TT> is a class for server-side
TCP sockets. A <TT>TCPServer</TT> waits for client connection
by the <TT>accept</TT> method, then returns a
<TT>TCPSocket</TT> object connected to the client. </P><A
name=ch04-25-fm2xml></A>
<H4 class=docRefsectTitle>Required Library</H4>
<P class=docText>require 'socket'</P><A
name=ch04-26-fm2xml></A>
<H4 class=docRefsectTitle>Example</H4><PRE>require 'socket'
gs = TCPserver.open(0)
addr = gs.addr
addr.shift # removes "AF_INET"
printf("server is on %s\n", addr.join(":"))
while true
Thread.start(gs.accept) do |s|
print(s, " is accepted\n")
while s.gets
s.write($_)
end
print(s, " is gone\n")
s.close
end
end</PRE><A name=ch04-27-fm2xml></A>
<H4 class=docRefsectTitle>Inherited Class</H4>
<P class=docText><TT>TCPSocket</TT></P><A
name=ch04-28-fm2xml></A>
<H4 class=docRefsectTitle>Class Methods</H4><A
name=IXT-4-128250></A><A name=IXT-4-128251></A><A
name=IXT-4-128252></A>
<DL class=docList>
<DT><SPAN class=docPubcolor><SPAN class=docPubcolor><SPAN
class=docMonofont>TCPServer::new([</SPAN></SPAN> <A
name=IXT-4-128251></A><TT><I>host</I></TT><SPAN
class=docPubcolor><SPAN
class=docMonofont>="localhost",]</SPAN></SPAN>
<TT><I>service</I></TT><SPAN class=docPubcolor><SPAN
class=docMonofont>)</SPAN></SPAN> </SPAN>
<DD>
<P class=docList></P>
<DT><SPAN class=docPubcolor><SPAN class=docPubcolor><SPAN
class=docMonofont>TCPServer::open([</SPAN></SPAN> <A
name=IXT-4-128252></A><TT><I>host</I></TT><SPAN
class=docPubcolor><SPAN
class=docMonofont>="localhost",]</SPAN></SPAN>
<TT><I>service</I></TT><SPAN class=docPubcolor><SPAN
class=docMonofont>)</SPAN></SPAN> </SPAN>
<DD>
<P class=docList>Creates a server socket</P></DD></DL><A
name=ch04-29-fm2xml></A>
<H4 class=docRefsectTitle>Instance Method</H4>
<DL class=docList>
<DT><SPAN class=docPubcolor><TT><I>s</I></TT><SPAN
class=docPubcolor><SPAN
class=docMonofont>.accept</SPAN></SPAN> </SPAN>
<DD>
<P class=docList>Waits for a connection and returns a new
<TT>TCPSocket</TT> object once one is accepted
</P></DD></DL><A name=ch04-30-fm2xml></A><A
name=IXT-4-128253></A><A name=IXT-4-128254></A><A
name=IXT-4-128255></A><A name=IXT-4-128256></A><A
name=IXT-4-128257></A><A name=IXT-4-128258></A><A
name=IXT-4-128259></A><A name=IXT-4-128260></A><A
name=IXT-4-128261></A>
<TABLE cellPadding=5 width=515 border=0>
<TBODY>
<TR>
<TD align=left><B><I>UNIXSocket</I></B></TD>
<TD align=right><I>Unix domain 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>UNIXSocket</TT><A name=IXT-4-128254></A>
is a class for the Unix domain, which can be specified by the
path. </P><A name=ch04-31-fm2xml></A>
<H4 class=docRefsectTitle>Required Library</H4>
<P class=docText>require 'socket'</P><A
name=ch04-32-fm2xml></A>
<H4 class=docRefsectTitle>Inherited Class</H4>
<P class=docText><TT>BasicSocket</TT><A name=IXT-4-128255></A>
</P><A name=ch04-33-fm2xml></A>
<H4 class=docRefsectTitle>Class Methods</H4><A
name=IXT-4-128256></A><A name=IXT-4-128257></A>
<DL class=docList>
<DT><SPAN class=docPubcolor><SPAN class=docPubcolor><SPAN
class=docMonofont>UNIXSocket::new(</SPAN></SPAN> <A
name=IXT-4-128256></A><TT><I>path</I></TT><SPAN
class=docPubcolor><SPAN class=docMonofont>)</SPAN></SPAN>
</SPAN>
<DD>
<P class=docList></P>
<DT><SPAN class=docPubcolor><SPAN class=docPubcolor><SPAN
class=docMonofont>UNIXSocket::open(</SPAN></SPAN> <A
name=IXT-4-128257></A><TT><I>path</I></TT><SPAN
class=docPubcolor><SPAN class=docMonofont>)</SPAN></SPAN>
</SPAN>
<DD>
<P class=docList>Creates a Unix domain socket</P></DD></DL><A
name=ch04-34-fm2xml></A>
<H4 class=docRefsectTitle>Instance Methods</H4><A
name=IXT-4-128258></A><A name=IXT-4-128259></A><A
name=IXT-4-128260></A><A name=IXT-4-128261></A>
<DL class=docList>
<DT><SPAN class=docPubcolor><TT><I>s</I></TT><A
name=IXT-4-128258></A><SPAN class=docPubcolor><SPAN
class=docMonofont>.addr</SPAN></SPAN> </SPAN>
<DD>
<P class=docList>Returns an array containing information on
the socket (<TT>AF_UNIX</TT> and the path) </P>
<DT><SPAN class=docPubcolor><TT><I>s</I></TT><A
name=IXT-4-128259></A><SPAN class=docPubcolor><SPAN
class=docMonofont>.path</SPAN></SPAN> </SPAN>
<DD>
<P class=docList>Returns the path of the Unix domain
socket</P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -