inet.html

来自「perl教程」· HTML 代码 · 共 246 行

HTML
246
字号
<?xml version="1.0" ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<!-- saved from url=(0017)http://localhost/ -->
<script language="JavaScript" src="../../../displayToc.js"></script>
<script language="JavaScript" src="../../../tocParas.js"></script>
<script language="JavaScript" src="../../../tocTab.js"></script>
<link rel="stylesheet" type="text/css" href="../../../scineplex.css">
<title>IO::Socket::INET - Object interface for AF_INET domain sockets</title>
<link rel="stylesheet" href="../../../Active.css" type="text/css" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:" />
</head>

<body>

<script>writelinks('__top__',3);</script>
<h1><a>IO::Socket::INET - Object interface for AF_INET domain sockets</a></h1>
<p><a name="__index__"></a></p>

<!-- INDEX BEGIN -->

<ul>

	<li><a href="#name">NAME</a></li>
	<li><a href="#synopsis">SYNOPSIS</a></li>
	<li><a href="#description">DESCRIPTION</a></li>
	<li><a href="#constructor">CONSTRUCTOR</a></li>
	<ul>

		<li><a href="#methods">METHODS</a></li>
	</ul>

	<li><a href="#see_also">SEE ALSO</a></li>
	<li><a href="#author">AUTHOR</a></li>
	<li><a href="#copyright">COPYRIGHT</a></li>
</ul>
<!-- INDEX END -->

<hr />
<p>
</p>
<h1><a name="name">NAME</a></h1>
<p>IO::Socket::INET - Object interface for AF_INET domain sockets</p>
<p>
</p>
<hr />
<h1><a name="synopsis">SYNOPSIS</a></h1>
<pre>
    <span class="keyword">use</span> <span class="variable">IO::Socket::INET</span><span class="operator">;</span>
</pre>
<p>
</p>
<hr />
<h1><a name="description">DESCRIPTION</a></h1>
<p><code>IO::Socket::INET</code> provides an object interface to creating and using sockets
in the AF_INET domain. It is built upon the <a href="../../../lib/IO/Socket.html">the IO::Socket manpage</a> interface and
inherits all the methods defined by <a href="../../../lib/IO/Socket.html">the IO::Socket manpage</a>.</p>
<p>
</p>
<hr />
<h1><a name="constructor">CONSTRUCTOR</a></h1>
<dl>
<dt><strong><a name="item_new">new ( [ARGS] )</a></strong>

<dd>
<p>Creates an <code>IO::Socket::INET</code> object, which is a reference to a
newly created symbol (see the <code>Symbol</code> package). <a href="#item_new"><code>new</code></a>
optionally takes arguments, these arguments are in key-value pairs.</p>
</dd>
<dd>
<p>In addition to the key-value pairs accepted by <a href="../../../lib/IO/Socket.html">the IO::Socket manpage</a>,
<code>IO::Socket::INET</code> provides.</p>
</dd>
<dd>
<pre>
    PeerAddr    Remote host address          &lt;hostname&gt;[:&lt;port&gt;]
    PeerHost    Synonym for PeerAddr
    PeerPort    Remote port or service       &lt;service&gt;[(&lt;no&gt;)] | &lt;no&gt;
    LocalAddr   Local host bind address      hostname[:port]
    LocalHost   Synonym for LocalAddr
    LocalPort   Local host bind port         &lt;service&gt;[(&lt;no&gt;)] | &lt;no&gt;
    Proto       Protocol name (or number)    &quot;tcp&quot; | &quot;udp&quot; | ...
    Type        Socket type                  SOCK_STREAM | SOCK_DGRAM | ...
    Listen      Queue size for listen
    ReuseAddr   Set SO_REUSEADDR before binding
    Reuse       Set SO_REUSEADDR before binding (deprecated, prefer ReuseAddr)
    ReusePort   Set SO_REUSEPORT before binding
    Broadcast   Set SO_BROADCAST before binding
    Timeout     Timeout value for various operations
    MultiHomed  Try all addresses for multi-homed hosts
    Blocking    Determine if connection will be blocking mode</pre>
</dd>
<dd>
<p>If <code>Listen</code> is defined then a listen socket is created, else if the
socket type, which is derived from the protocol, is SOCK_STREAM then
<a href="../../../lib/Pod/perlfunc.html#item_connect"><code>connect()</code></a> is called.</p>
</dd>
<dd>
<p>Although it is not illegal, the use of <code>MultiHomed</code> on a socket
which is in non-blocking mode is of little use. This is because the
first connect will never fail with a timeout as the connect call
will not block.</p>
</dd>
<dd>
<p>The <code>PeerAddr</code> can be a hostname or the IP-address on the
&quot;xx.xx.xx.xx&quot; form.  The <code>PeerPort</code> can be a number or a symbolic
service name.  The service name might be followed by a number in
parenthesis which is used if the service is not known by the system.
The <code>PeerPort</code> specification can also be embedded in the <code>PeerAddr</code>
by preceding it with a &quot;:&quot;.</p>
</dd>
<dd>
<p>If <code>Proto</code> is not given and you specify a symbolic <code>PeerPort</code> port,
then the constructor will try to derive <code>Proto</code> from the service
name.  As a last resort <code>Proto</code> &quot;tcp&quot; is assumed.  The <code>Type</code>
parameter will be deduced from <code>Proto</code> if not specified.</p>
</dd>
<dd>
<p>If the constructor is only passed a single argument, it is assumed to
be a <code>PeerAddr</code> specification.</p>
</dd>
<dd>
<p>If <code>Blocking</code> is set to 0, the connection will be in nonblocking mode.
If not specified it defaults to 1 (blocking mode).</p>
</dd>
<dd>
<p>Examples:</p>
</dd>
<dd>
<pre>
   <span class="variable">$sock</span> <span class="operator">=</span> <span class="variable">IO::Socket::INET</span><span class="operator">-&gt;</span><span class="variable">new</span><span class="operator">(</span><span class="string">PeerAddr</span> <span class="operator">=&gt;</span> <span class="string">'www.perl.org'</span><span class="operator">,</span>
                                 <span class="string">PeerPort</span> <span class="operator">=&gt;</span> <span class="string">'http(80)'</span><span class="operator">,</span>
                                 <span class="string">Proto</span>    <span class="operator">=&gt;</span> <span class="string">'tcp'</span><span class="operator">);</span>
</pre>
</dd>
<dd>
<pre>
   <span class="variable">$sock</span> <span class="operator">=</span> <span class="variable">IO::Socket::INET</span><span class="operator">-&gt;</span><span class="variable">new</span><span class="operator">(</span><span class="string">PeerAddr</span> <span class="operator">=&gt;</span> <span class="string">'localhost:smtp(25)'</span><span class="operator">);</span>
</pre>
</dd>
<dd>
<pre>
   <span class="variable">$sock</span> <span class="operator">=</span> <span class="variable">IO::Socket::INET</span><span class="operator">-&gt;</span><span class="variable">new</span><span class="operator">(</span><span class="string">Listen</span>    <span class="operator">=&gt;</span> <span class="number">5</span><span class="operator">,</span>
                                 <span class="string">LocalAddr</span> <span class="operator">=&gt;</span> <span class="string">'localhost'</span><span class="operator">,</span>
                                 <span class="string">LocalPort</span> <span class="operator">=&gt;</span> <span class="number">9000</span><span class="operator">,</span>
                                 <span class="string">Proto</span>     <span class="operator">=&gt;</span> <span class="string">'tcp'</span><span class="operator">);</span>
</pre>
</dd>
<dd>
<pre>
   <span class="variable">$sock</span> <span class="operator">=</span> <span class="variable">IO::Socket::INET</span><span class="operator">-&gt;</span><span class="variable">new</span><span class="operator">(</span><span class="string">'127.0.0.1:25'</span><span class="operator">);</span>
</pre>
</dd>
<dd>
<pre>
   <span class="variable">$sock</span> <span class="operator">=</span> <span class="variable">IO::Socket::INET</span><span class="operator">-&gt;</span><span class="variable">new</span><span class="operator">(</span><span class="string">PeerPort</span>  <span class="operator">=&gt;</span> <span class="number">9999</span><span class="operator">,</span>
                                 <span class="string">PeerAddr</span>  <span class="operator">=&gt;</span> <span class="variable">inet_ntoa</span><span class="operator">(</span><span class="variable">INADDR_BROADCAST</span><span class="operator">),</span>
                                 <span class="string">Proto</span>     <span class="operator">=&gt;</span> <span class="variable">udp</span><span class="operator">,</span>    
                                 <span class="string">LocalAddr</span> <span class="operator">=&gt;</span> <span class="string">'localhost'</span><span class="operator">,</span>
                                 <span class="string">Broadcast</span> <span class="operator">=&gt;</span> <span class="number">1</span> <span class="operator">)</span> 
                             <span class="keyword">or</span> <span class="keyword">die</span> <span class="string">"Can't bind : $@\n"</span><span class="operator">;</span>
</pre>
</dd>
<dd>
<pre>
 NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE</pre>
</dd>
<dd>
<p>As of VERSION 1.18 all IO::Socket objects have autoflush turned on
by default. This was not the case with earlier releases.</p>
</dd>
<dd>
<pre>
 NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE</pre>
</dd>
</li>
</dl>
<p>
</p>
<h2><a name="methods">METHODS</a></h2>
<dl>
<dt><strong><a name="item_sockaddr">sockaddr ()</a></strong>

<dd>
<p>Return the address part of the sockaddr structure for the socket</p>
</dd>
</li>
<dt><strong><a name="item_sockport">sockport ()</a></strong>

<dd>
<p>Return the port number that the socket is using on the local host</p>
</dd>
</li>
<dt><strong><a name="item_sockhost">sockhost ()</a></strong>

<dd>
<p>Return the address part of the sockaddr structure for the socket in a
text form xx.xx.xx.xx</p>
</dd>
</li>
<dt><strong><a name="item_peeraddr">peeraddr ()</a></strong>

<dd>
<p>Return the address part of the sockaddr structure for the socket on
the peer host</p>
</dd>
</li>
<dt><strong><a name="item_peerport">peerport ()</a></strong>

<dd>
<p>Return the port number for the socket on the peer host.</p>
</dd>
</li>
<dt><strong><a name="item_peerhost">peerhost ()</a></strong>

<dd>
<p>Return the address part of the sockaddr structure for the socket on the
peer host in a text form xx.xx.xx.xx</p>
</dd>
</li>
</dl>
<p>
</p>
<hr />
<h1><a name="see_also">SEE ALSO</a></h1>
<p><a href="../../../lib/Socket.html">the Socket manpage</a>, <a href="../../../lib/IO/Socket.html">the IO::Socket manpage</a></p>
<p>
</p>
<hr />
<h1><a name="author">AUTHOR</a></h1>
<p>Graham Barr. Currently maintained by the Perl Porters.  Please report all
bugs to &lt;<a href="mailto:perl5-porters@perl.org">perl5-porters@perl.org</a>&gt;.</p>
<p>
</p>
<hr />
<h1><a name="copyright">COPYRIGHT</a></h1>
<p>Copyright (c) 1996-8 Graham Barr &lt;<a href="mailto:gbarr@pobox.com">gbarr@pobox.com</a>&gt;. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.</p>

</body>

</html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?