mirror of
				https://github.com/lunarmodules/luasocket.git
				synced 2025-10-31 10:25:55 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			692 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			692 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
 | |
|     "http://www.w3.org/TR/html4/strict.dtd">
 | |
| <html>
 | |
| 
 | |
| <head>
 | |
| <meta name="description" content="LuaSocket: The TCP/IP support">
 | |
| <meta name="keywords" content="Lua, LuaSocket, Socket, TCP, Library, Network, Support">
 | |
| <title>LuaSocket: TCP/IP support</title>
 | |
| <link rel="stylesheet" href="reference.css" type="text/css">
 | |
| </head>
 | |
| 
 | |
| <body>
 | |
| 
 | |
| <!-- header +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <div class=header>
 | |
| <hr>
 | |
| <center>
 | |
| <table summary="LuaSocket logo">
 | |
| <tr><td align=center><a href="http://www.lua.org">
 | |
| <img width=128 height=128 border=0 alt="LuaSocket" src="luasocket.png">
 | |
| </a></td></tr>
 | |
| <tr><td align=center valign=top>Network support for the Lua language
 | |
| </td></tr>
 | |
| </table>
 | |
| <p class=bar>
 | |
| <a href="index.html">home</a> ·
 | |
| <a href="index.html#download">download</a> ·
 | |
| <a href="installation.html">installation</a> ·
 | |
| <a href="introduction.html">introduction</a> ·
 | |
| <a href="reference.html">reference</a>
 | |
| </p>
 | |
| </center>
 | |
| <hr>
 | |
| </div>
 | |
| 
 | |
| <!-- tcp ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <h2 id="tcp">TCP</h2>
 | |
| 
 | |
| <!-- socket.tcp +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <p class=name id="socket.tcp">
 | |
| socket.<b>tcp()</b>
 | |
| </p>
 | |
| 
 | |
| <p class=description>
 | |
| Creates and returns an TCP master object. A master object can
 | |
| be transformed into a server object with the method
 | |
| <a href=#listen><tt>listen</tt></a> (after a call to <a
 | |
| href=#bind><tt>bind</tt></a>) or into a client object with
 | |
| the method <a href=#connect><tt>connect</tt></a>. The only other
 | |
| method supported by a master object is the
 | |
| <a href=#close><tt>close</tt></a> method.</p>
 | |
| 
 | |
| <p class=return>
 | |
| In case of success, a new master object is returned. In case of error,
 | |
| <b><tt>nil</tt></b> is returned, followed by an error message.
 | |
| </p>
 | |
| 
 | |
| <p class=note>
 | |
| Note: The choice between IPv4 and IPv6 happens during a call to
 | |
| <a href=#bind><tt>bind</tt></a> or <a
 | |
| href=#bind><tt>connect</tt></a>, depending on the address
 | |
| family obtained from the resolver.
 | |
| </p>
 | |
| 
 | |
| <!-- socket.tcp +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <p class=name id="socket.tcp4">
 | |
| socket.<b>tcp4()</b>
 | |
| </p>
 | |
| 
 | |
| <p class=description>
 | |
| Creates and returns an IPv4 TCP master object. A master object can
 | |
| be transformed into a server object with the method
 | |
| <a href=#listen><tt>listen</tt></a> (after a call to <a
 | |
| href=#bind><tt>bind</tt></a>) or into a client object with
 | |
| the method <a href=#connect><tt>connect</tt></a>. The only other
 | |
| method supported by a master object is the
 | |
| <a href=#close><tt>close</tt></a> method.</p>
 | |
| 
 | |
| <p class=return>
 | |
| In case of success, a new master object is returned. In case of error,
 | |
| <b><tt>nil</tt></b> is returned, followed by an error message.
 | |
| </p>
 | |
| 
 | |
| <!-- socket.tcp6 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <p class=name id="socket.tcp6">
 | |
| socket.<b>tcp6()</b>
 | |
| </p>
 | |
| 
 | |
| <p class=description>
 | |
| Creates and returns an IPv6 TCP master object. A master object can
 | |
| be transformed into a server object with the method
 | |
| <a href=#listen><tt>listen</tt></a> (after a call to <a
 | |
| href=#bind><tt>bind</tt></a>) or into a client object with
 | |
| the method <a href=#connect><tt>connect</tt></a>. The only other
 | |
| method supported by a master object is the
 | |
| <a href=#close><tt>close</tt></a> method.</p>
 | |
| 
 | |
| <p class=return>
 | |
| In case of success, a new master object is returned. In case of error,
 | |
| <b><tt>nil</tt></b> is returned, followed by an error message.
 | |
| </p>
 | |
| 
 | |
| <p class=note>
 | |
| Note: The TCP object returned will have the option
 | |
| "<tt>ipv6-v6only</tt>" set to <tt><b>true</b></tt>.
 | |
| </p>
 | |
| 
 | |
| <!-- accept +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <p class=name id="accept">
 | |
| server:<b>accept()</b>
 | |
| </p>
 | |
| 
 | |
| <p class=description>
 | |
| Waits  for  a  remote connection on the server
 | |
| object and returns a client object representing that connection.
 | |
| </p>
 | |
| 
 | |
| <p class=return>
 | |
| If a connection is successfully initiated, a client object is returned.
 | |
| If a  timeout condition  is  met,  the method  returns <b><tt>nil</tt></b>
 | |
| followed by the error string '<tt>timeout</tt>'. Other errors are
 | |
| reported by <b><tt>nil</tt></b> followed by a message describing the error.
 | |
| </p>
 | |
| 
 | |
| <p class=note>
 | |
| Note: calling <a href=socket.html#select><tt>socket.select</tt></a>
 | |
| with   a  server   object   in
 | |
| the <tt>recvt</tt>  parameter  before  a   call  to  <tt>accept</tt> does
 | |
| <em>not</em> guarantee  <tt>accept</tt> will  return immediately.  Use the <a
 | |
| href=#settimeout><tt>settimeout</tt></a> method or <tt>accept</tt>
 | |
| might block until <em>another</em> client shows up.
 | |
| </p>
 | |
| 
 | |
| <!-- bind +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <p class=name id="bind">
 | |
| master:<b>bind(</b>address, port<b>)</b>
 | |
| </p>
 | |
| 
 | |
| <p class=description>
 | |
| Binds a master object to <tt>address</tt> and <tt>port</tt> on the
 | |
| local host.
 | |
| 
 | |
| <p class=parameters>
 | |
| <tt>Address</tt> can be an IP address or a host name.
 | |
| <tt>Port</tt> must be an integer number in the range [0..64K).
 | |
| If <tt>address</tt>
 | |
| is '<tt>*</tt>', the system binds to all local interfaces
 | |
| using the <tt>INADDR_ANY</tt> constant or
 | |
| <tt>IN6ADDR_ANY_INIT</tt>, according to the family.
 | |
| If <tt>port</tt> is 0, the system automatically
 | |
| chooses an ephemeral port.
 | |
| </p>
 | |
| 
 | |
| <p class=return>
 | |
| In case of  success, the  method returns  1. In case of error, the
 | |
| method returns <b><tt>nil</tt></b> followed by an error message.
 | |
| </p>
 | |
| 
 | |
| <p class=note>
 | |
| Note: The function <a href=socket.html#bind><tt>socket.bind</tt></a>
 | |
| is available and is a shortcut for the creation of server sockets.
 | |
| </p>
 | |
| 
 | |
| <!-- close ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <p class=name id="close">
 | |
| master:<b>close()</b><br>
 | |
| client:<b>close()</b><br>
 | |
| server:<b>close()</b>
 | |
| </p>
 | |
| 
 | |
| <p class=description>
 | |
| Closes  a TCP object. The internal socket used by the object is closed
 | |
| and the local  address   to  which the object was
 | |
| bound is made  available to other  applications. No further  operations
 | |
| (except  for  further calls  to the <tt>close</tt> method)  are allowed on
 | |
| a closed socket.
 | |
| </p>
 | |
| 
 | |
| <p class=note>
 | |
| Note:  It is  important to  close all  used  sockets once  they are  not
 | |
| needed,  since, in  many systems,  each socket  uses a  file descriptor,
 | |
| which are limited system resources. Garbage-collected objects are
 | |
| automatically closed before destruction, though.
 | |
| </p>
 | |
| 
 | |
| <!-- connect ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <p class=name id="connect">
 | |
| master:<b>connect(</b>address, port<b>)</b>
 | |
| </p>
 | |
| 
 | |
| <p class=description>
 | |
| Attempts to connect a master object to a remote host, transforming it into a
 | |
| client object.
 | |
| Client objects support methods
 | |
| <a href=#send><tt>send</tt></a>,
 | |
| <a href=#receive><tt>receive</tt></a>,
 | |
| <a href=#getsockname><tt>getsockname</tt></a>,
 | |
| <a href=#getpeername><tt>getpeername</tt></a>,
 | |
| <a href=#settimeout><tt>settimeout</tt></a>,
 | |
| and <a href=#close><tt>close</tt></a>.
 | |
| </p>
 | |
| 
 | |
| <p class=parameters>
 | |
| <tt>Address</tt> can be an IP address or a host name.
 | |
| <tt>Port</tt> must be an integer number in the range [1..64K).
 | |
| </p>
 | |
| 
 | |
| <p class=return>
 | |
| In case of error, the method returns <b><tt>nil</tt></b> followed by a string
 | |
| describing the error. In case of success, the method returns 1.
 | |
| </p>
 | |
| 
 | |
| <p class=note>
 | |
| Note: The function <a href=socket.html#connect><tt>socket.connect</tt></a>
 | |
| is available and is a shortcut for the creation of client sockets.
 | |
| </p>
 | |
| 
 | |
| <p class=note>
 | |
| Note: Starting with LuaSocket 2.0,
 | |
| the <a href=#settimeout><tt>settimeout</tt></a>
 | |
| method affects the behavior of <tt>connect</tt>, causing it to return
 | |
| with an error in case of a timeout. If that happens, you can still call <a
 | |
| href=socket.html#select><tt>socket.select</tt></a> with the socket in the
 | |
| <tt>sendt</tt> table. The socket will be writable when the connection is
 | |
| established.
 | |
| </p>
 | |
| 
 | |
| <p class=note>
 | |
| Note: Starting with LuaSocket 3.0, the host name resolution
 | |
| depends on whether the socket was created by <a
 | |
| href=#socket.tcp><tt>socket.tcp</tt></a> or <a
 | |
| href=#socket.tcp6><tt>socket.tcp6</tt></a>. Addresses from
 | |
| the appropriate family are tried in succession until the
 | |
| first success or until the last failure.
 | |
| </p>
 | |
| 
 | |
| <!-- getpeername ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <p class=name id="getpeername">
 | |
| client:<b>getpeername()</b>
 | |
| </p>
 | |
| 
 | |
| <p class=description>
 | |
| Returns information about the remote side of a connected client object.
 | |
| </p>
 | |
| 
 | |
| <p class=return>
 | |
| Returns a string with the IP address of the peer, the
 | |
| port number that peer is using for the connection,
 | |
| and a string with the family ("<tt>inet</tt>" or "<tt>inet6</tt>").
 | |
| In case of error, the method returns <b><tt>nil</tt></b>.
 | |
| </p>
 | |
| 
 | |
| <p class=note>
 | |
| Note: It makes no sense to call this method on server objects.
 | |
| </p>
 | |
| 
 | |
| <!-- getsockname ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <p class=name id="getsockname">
 | |
| master:<b>getsockname()</b><br>
 | |
| client:<b>getsockname()</b><br>
 | |
| server:<b>getsockname()</b>
 | |
| </p>
 | |
| 
 | |
| <p class=description>
 | |
| Returns the local address information associated to the object.
 | |
| </p>
 | |
| 
 | |
| <p class=return>
 | |
| The method returns a string with local IP address, a number with
 | |
| the local port,
 | |
| and a string with the family ("<tt>inet</tt>" or "<tt>inet6</tt>").
 | |
| In case of error, the method returns <b><tt>nil</tt></b>.
 | |
| </p>
 | |
| 
 | |
| <!-- getstats +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <p class=name id="getstats">
 | |
| master:<b>getstats()</b><br>
 | |
| client:<b>getstats()</b><br>
 | |
| server:<b>getstats()</b><br>
 | |
| </p>
 | |
| 
 | |
| <p class=description>
 | |
| Returns accounting information on the socket, useful for throttling
 | |
| of bandwidth.
 | |
| </p>
 | |
| 
 | |
| <p class=return>
 | |
| The method returns the number of bytes received, the number of bytes sent,
 | |
| and the age of the socket object in seconds.
 | |
| </p>
 | |
| 
 | |
| <!-- listen ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <p class=name id="listen">
 | |
| master:<b>listen(</b>backlog<b>)</b>
 | |
| </p>
 | |
| 
 | |
| <p class=description>
 | |
| Specifies the socket is willing to receive connections, transforming the
 | |
| object into a server object.  Server objects support the
 | |
| <a href=#accept><tt>accept</tt></a>,
 | |
| <a href=#getsockname><tt>getsockname</tt></a>,
 | |
| <a href=#setoption><tt>setoption</tt></a>,
 | |
| <a href=#settimeout><tt>settimeout</tt></a>,
 | |
| and <a href=#close><tt>close</tt></a> methods.
 | |
| </p>
 | |
| 
 | |
| <p class=parameters>
 | |
| The parameter <tt>backlog</tt> specifies the  number  of  client
 | |
| connections that can
 | |
| be queued waiting for service. If the queue is full and another  client
 | |
| attempts connection,  the connection is  refused.
 | |
| </p>
 | |
| 
 | |
| <p class=return>
 | |
| In case of  success, the  method returns  1. In case of error, the
 | |
| method returns <b><tt>nil</tt></b> followed by an error message.
 | |
| </p>
 | |
| 
 | |
| <!-- receive ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <p class=name id="receive">
 | |
| client:<b>receive(</b>[pattern [, prefix]]<b>)</b>
 | |
| </p>
 | |
| 
 | |
| <p class=description>
 | |
| Reads data from a client object, according to the specified <em>read
 | |
| pattern</em>.  Patterns follow the Lua file I/O format, and the difference in performance between all patterns is negligible.
 | |
| </p>
 | |
| 
 | |
| <p class=parameters>
 | |
| <tt>Pattern</tt> can be any of the following:
 | |
| </p>
 | |
| 
 | |
| <ul>
 | |
| <li> '<tt>*a</tt>':  reads from  the  socket  until the  connection  is
 | |
| closed. No end-of-line translation is performed;
 | |
| <li> '<tt>*l</tt>':  reads a line of  text from the socket.  The line is
 | |
| terminated by a  LF character (ASCII 10), optionally  preceded by a
 | |
| CR character (ASCII 13). The CR and LF characters are not included in
 | |
| the returned line. In fact, <em>all</em> CR characters are
 | |
| ignored by the pattern. This is the default pattern;
 | |
| <li> <tt>number</tt>:  causes the  method to read  a specified <tt>number</tt>
 | |
| of bytes from the socket.
 | |
| </ul>
 | |
| 
 | |
| <p class=parameters>
 | |
| <tt>Prefix</tt> is an optional string to be concatenated to the beginning
 | |
| of any received data before return.
 | |
| </p>
 | |
| 
 | |
| <p class=return>
 | |
| If successful, the method returns the received pattern. In case of error,
 | |
| the method returns <tt><b>nil</b></tt> followed by an error
 | |
| message, followed by a (possibly empty) string containing
 | |
| the partial that was received. The error message can be
 | |
| the string '<tt>closed</tt>'  in   case  the  connection  was
 | |
| closed  before  the transmission  was completed  or  the string
 | |
| '<tt>timeout</tt>' in  case there was a timeout during  the operation.
 | |
| </p>
 | |
| 
 | |
| <p class=note>
 | |
| <b>Important note</b>: This function was changed <em>severely</em>. It used
 | |
| to support multiple patterns (but I have never seen this feature used) and
 | |
| now it doesn't anymore.  Partial results used to be returned in the same
 | |
| way as successful results. This last feature violated the idea that all
 | |
| functions should return <tt><b>nil</b></tt> on error.  Thus it was changed
 | |
| too.
 | |
| </p>
 | |
| 
 | |
| <!-- send +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <p class=name id="send">
 | |
| client:<b>send(</b>data [, i [, j]]<b>)</b>
 | |
| </p>
 | |
| 
 | |
| <p class=description>
 | |
| Sends <tt>data</tt> through client object.
 | |
| </p>
 | |
| 
 | |
| <p class=parameters>
 | |
| <tt>Data</tt> is the string to be sent. The optional arguments
 | |
| <tt>i</tt> and <tt>j</tt> work exactly like the standard
 | |
| <tt>string.sub</tt> Lua function to allow the selection of a
 | |
| substring to be sent.
 | |
| </p>
 | |
| 
 | |
| <p class=return>
 | |
| If successful, the method returns the index of the last byte
 | |
| within <tt>[i, j]</tt> that has been sent.  Notice that, if
 | |
| <tt>i</tt> is 1 or absent, this is effectively the total
 | |
| number of bytes sent.  In case of error, the method returns
 | |
| <b><tt>nil</tt></b>, followed by an error message, followed
 | |
| by the index of the last byte within <tt>[i, j]</tt> that
 | |
| has been sent. You might want to try again from the byte
 | |
| following that.  The error message can be '<tt>closed</tt>'
 | |
| in case the connection was  closed before the transmission
 | |
| was  completed or the string  '<tt>timeout</tt>'  in  case
 | |
| there was  a  timeout  during  the operation.
 | |
| </p>
 | |
| 
 | |
| <p class=note>
 | |
| Note: Output is <em>not</em> buffered. For small strings,
 | |
| it is always better to concatenate them in Lua
 | |
| (with the '<tt>..</tt>' operator) and send the result in one call
 | |
| instead of calling the method several times.
 | |
| </p>
 | |
| 
 | |
| <!-- setoption ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <p class=name id="setoption">
 | |
| client:<b>setoption(</b>option [, value]<b>)</b><br>
 | |
| server:<b>setoption(</b>option [, value]<b>)</b>
 | |
| </p>
 | |
| 
 | |
| <p class=description>
 | |
| Sets options for the TCP object. Options are only needed by low-level or
 | |
| time-critical applications. You should only modify an option if you
 | |
| are sure you need it.
 | |
| </p>
 | |
| 
 | |
| <p class=parameters>
 | |
| <tt>Option</tt> is a string with the option name, and <tt>value</tt>
 | |
| depends on the option being set:
 | |
| 
 | |
| <ul>
 | |
| 
 | |
| <li> '<tt>keepalive</tt>':  Setting this option to <tt>true</tt> enables
 | |
| the periodic transmission of messages on a connected socket. Should the
 | |
| connected party fail to respond to these messages, the connection is
 | |
| considered broken and processes using the socket are notified;
 | |
| 
 | |
| <li> '<tt>linger</tt>': Controls the action taken when unsent data are
 | |
| queued on a socket and a close is performed.  The value is a table with a
 | |
| boolean entry '<tt>on</tt>' and a numeric entry for the time interval
 | |
| '<tt>timeout</tt>' in seconds. If the '<tt>on</tt>' field is set to
 | |
| <tt>true</tt>, the system will block the process on the close attempt until
 | |
| it is able to transmit the data or until '<tt>timeout</tt>' has passed. If
 | |
| '<tt>on</tt>' is <tt>false</tt> and a close is issued, the system will
 | |
| process the close in a manner that allows the process to continue as
 | |
| quickly as possible. I do not advise you to set this to anything other than
 | |
| zero;
 | |
| 
 | |
| <li> '<tt>reuseaddr</tt>': Setting this option indicates that the rules
 | |
| used in validating addresses supplied in a call to
 | |
| <a href=#bind><tt>bind</tt></a> should allow reuse of local addresses;
 | |
| 
 | |
| <li> '<tt>tcp-nodelay</tt>': Setting this option to <tt>true</tt>
 | |
| disables the Nagle's algorithm for the connection;
 | |
| 
 | |
| <li> '<tt>ipv6-v6only</tt>':
 | |
| Setting this option to <tt>true</tt> restricts an <tt>inet6</tt> socket to
 | |
| sending and receiving only IPv6 packets.
 | |
| </ul>
 | |
| 
 | |
| <p class=return>
 | |
| The method returns 1 in case of success, or <b><tt>nil</tt></b>
 | |
| followed by an error message otherwise.
 | |
| </p>
 | |
| 
 | |
| <p class=note>
 | |
| Note: The descriptions above come from the man pages.
 | |
| </p>
 | |
| 
 | |
| <!-- getoption ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <p class=name id="getoption">
 | |
| client:<b>getoption(</b>option)</b><br>
 | |
| server:<b>getoption(</b>option)</b>
 | |
| </p>
 | |
| 
 | |
| <p class=description>
 | |
| Gets options for the TCP object.
 | |
| See <a href=#setoption><tt>setoption</tt></a> for description of the
 | |
| option names and values.
 | |
| </p>
 | |
| 
 | |
| <p class=parameters>
 | |
| <tt>Option</tt> is a string with the option name.
 | |
| <ul>
 | |
| 
 | |
| <li> '<tt>keepalive</tt>'
 | |
| <li> '<tt>linger</tt>'
 | |
| <li> '<tt>reuseaddr</tt>'
 | |
| <li> '<tt>tcp-nodelay</tt>'
 | |
| </ul>
 | |
| 
 | |
| <p class=return>
 | |
| The method returns the option <tt>value</tt> in case of success, or
 | |
| <b><tt>nil</tt></b> followed by an error message otherwise.
 | |
| </p>
 | |
| 
 | |
| <!-- setstats +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <p class=name id="setstats">
 | |
| master:<b>setstats(</b>received, sent, age<b>)</b><br>
 | |
| client:<b>setstats(</b>received, sent, age<b>)</b><br>
 | |
| server:<b>setstats(</b>received, sent, age<b>)</b><br>
 | |
| </p>
 | |
| 
 | |
| <p class=description>
 | |
| Resets accounting information on the socket, useful for throttling
 | |
| of bandwidth.
 | |
| </p>
 | |
| 
 | |
| <p class=parameters>
 | |
| <tt>Received</tt> is a number with the new number of bytes received.
 | |
| <tt>Sent</tt> is a number with the new number of bytes sent.
 | |
| <tt>Age</tt> is the new age in seconds.
 | |
| </p>
 | |
| 
 | |
| <p class=return>
 | |
| The method returns 1 in case of success and <tt><b>nil</b></tt> otherwise.
 | |
| </p>
 | |
| 
 | |
| <!-- settimeout +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <p class=name id="settimeout">
 | |
| master:<b>settimeout(</b>value [, mode]<b>)</b><br>
 | |
| client:<b>settimeout(</b>value [, mode]<b>)</b><br>
 | |
| server:<b>settimeout(</b>value [, mode]<b>)</b>
 | |
| </p>
 | |
| 
 | |
| <p class=description>
 | |
| Changes the timeout  values for the object. By default,
 | |
| all I/O  operations are  blocking. That  is, any  call to  the methods
 | |
| <a href=#send><tt>send</tt></a>,
 | |
| <a href=#receive><tt>receive</tt></a>, and
 | |
| <a href=#accept><tt>accept</tt></a>
 | |
| will  block indefinitely,  until the operation completes.  The
 | |
| <tt>settimeout</tt>  method defines a  limit on the  amount  of   time  the
 | |
| I/O methods can  block. When a timeout is set and the specified amount of
 | |
| time has elapsed, the affected methods give up and fail with an error code.
 | |
| </p>
 | |
| 
 | |
| <p class=parameters>
 | |
| The amount of time to wait is specified  as  the
 | |
| <tt>value</tt> parameter, in seconds. There  are two timeout  modes and
 | |
| both can be used together for fine tuning:
 | |
| </p>
 | |
| 
 | |
| <ul>
 | |
| <li> '<tt>b</tt>': <em>block</em> timeout.  Specifies the upper limit on
 | |
| the amount  of time  LuaSocket can  be blocked  by the  operating system
 | |
| while waiting for completion of any single I/O operation. This is the
 | |
| default mode;</li>
 | |
| 
 | |
| <li> '<tt>t</tt>':  <em>total</em> timeout. Specifies the  upper limit on
 | |
| the amount of  time LuaSocket can block a Lua  script before returning from
 | |
| a call.</li>
 | |
| </ul>
 | |
| 
 | |
| <p class=parameters>
 | |
| The  <b><tt>nil</tt></b>  timeout  <tt>value</tt> allows  operations  to  block
 | |
| indefinitely. Negative timeout values have the same effect.
 | |
| </p>
 | |
| 
 | |
| <p class=note>
 | |
| Note: although  timeout values  have millisecond  precision in LuaSocket,
 | |
| large  blocks can cause I/O functions not to  respect timeout values due
 | |
| to the time the library takes to  transfer blocks to and from the  OS
 | |
| and to and from the Lua interpreter. Also, function that accept host names
 | |
| and perform automatic name resolution might be blocked by the resolver for
 | |
| longer than the specified timeout value.
 | |
| </p>
 | |
| 
 | |
| <p class=note>
 | |
| Note: The old <tt>timeout</tt> method is deprecated. The name has been
 | |
| changed for sake of uniformity, since all other method names already
 | |
| contained verbs making their imperative nature obvious.
 | |
| </p>
 | |
| 
 | |
| <!-- shutdown +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <p class=name id="shutdown">
 | |
| client:<b>shutdown(</b>mode<b>)</b><br>
 | |
| </p>
 | |
| 
 | |
| <p class=description>
 | |
| Shuts down part of a full-duplex connection.
 | |
| </p>
 | |
| 
 | |
| <p class=parameters>
 | |
| Mode tells which way of the connection should be shut down and can
 | |
| take the value:
 | |
| <ul>
 | |
| <li>"<tt>both</tt>": disallow further sends and receives on the object.
 | |
| This is the default mode;
 | |
| <li>"<tt>send</tt>": disallow further sends on the object;
 | |
| <li>"<tt>receive</tt>": disallow further receives on the object.
 | |
| </ul>
 | |
| 
 | |
| <p class=return>
 | |
| This function returns 1.
 | |
| </p>
 | |
| 
 | |
| <!-- dirty +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <p class=name id="dirty">
 | |
| master:<b>dirty()</b><br>
 | |
| client:<b>dirty()</b><br>
 | |
| server:<b>dirty()</b>
 | |
| </p>
 | |
| 
 | |
| <p class=description>
 | |
| Check the read buffer status.
 | |
| </p>
 | |
| 
 | |
| <p class=return>
 | |
| Returns <tt>true</tt> if there is any data in the read buffer, <tt>false</tt> otherwise.
 | |
| </p>
 | |
| 
 | |
| <p class=note>
 | |
| Note: <b>This is an internal method, any use is unlikely to be portable.</b>
 | |
| </p>
 | |
| 
 | |
| <!-- getfd +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <p class=name id="getfd">
 | |
| master:<b>getfd()</b><br>
 | |
| client:<b>getfd()</b><br>
 | |
| server:<b>getfd()</b>
 | |
| </p>
 | |
| 
 | |
| <p class=description>
 | |
| Returns the underling socket descriptor or handle associated to the object.
 | |
| </p>
 | |
| 
 | |
| <p class=return>
 | |
| The descriptor or handle. In case the object has been closed, the return will be -1.
 | |
| </p>
 | |
| 
 | |
| <p class=note>
 | |
| Note: <b>This is an internal method, any use is unlikely to be portable.</b>
 | |
| </p>
 | |
| 
 | |
| <!-- setfd +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <p class=name id="setfd">
 | |
| master:<b>setfd(</b>fd<b>)</b><br>
 | |
| client:<b>setfd(</b>fd<b>)</b><br>
 | |
| server:<b>setfd(</b>fd<b>)</b>
 | |
| </p>
 | |
| 
 | |
| <p class=description>
 | |
| Sets the underling socket descriptor or handle associated to the object. The current one is simply replaced, not closed, and no other change to the object state is made.
 | |
| </p>
 | |
| 
 | |
| <p class=return>
 | |
| No return value.
 | |
| </p>
 | |
| 
 | |
| <p class=note>
 | |
| Note: <b>This is an internal method, any use is unlikely to be portable.</b>
 | |
| </p>
 | |
| 
 | |
| <!-- footer +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 | |
| 
 | |
| <div class=footer>
 | |
| <hr>
 | |
| <center>
 | |
| <p class=bar>
 | |
| <a href="index.html">home</a> ·
 | |
| <a href="index.html#down">download</a> ·
 | |
| <a href="installation.html">installation</a> ·
 | |
| <a href="introduction.html">introduction</a> ·
 | |
| <a href="reference.html">reference</a>
 | |
| </p>
 | |
| <p>
 | |
| <small>
 | |
| Last modified by Diego Nehab on <br>
 | |
| Thu Apr 20 00:25:57 EDT 2006
 | |
| </small>
 | |
| </p>
 | |
| </center>
 | |
| </div>
 | |
| 
 | |
| </body>
 | |
| </html>
 |