Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > by-pkgid > 535a7a10fe62254ee9ca7e6375f081a9 > files > 506

ocaml-ocamlnet-2.2.7-4mdv2008.1.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<link rel="Start" href="index.html">
<link title="Index of types" rel=Appendix href="index_types.html">
<link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
<link title="Index of values" rel=Appendix href="index_values.html">
<link title="Index of class attributes" rel=Appendix href="index_attributes.html">
<link title="Index of class methods" rel=Appendix href="index_methods.html">
<link title="Index of classes" rel=Appendix href="index_classes.html">
<link title="Index of class types" rel=Appendix href="index_class_types.html">
<link title="Index of modules" rel=Appendix href="index_modules.html">
<link title="Index of module types" rel=Appendix href="index_module_types.html">
<link title="Uq_gtk" rel="Chapter" href="Uq_gtk.html">
<link title="Equeue" rel="Chapter" href="Equeue.html">
<link title="Unixqueue" rel="Chapter" href="Unixqueue.html">
<link title="Uq_engines" rel="Chapter" href="Uq_engines.html">
<link title="Uq_socks5" rel="Chapter" href="Uq_socks5.html">
<link title="Unixqueue_mt" rel="Chapter" href="Unixqueue_mt.html">
<link title="Equeue_intro" rel="Chapter" href="Equeue_intro.html">
<link title="Uq_ssl" rel="Chapter" href="Uq_ssl.html">
<link title="Uq_tcl" rel="Chapter" href="Uq_tcl.html">
<link title="Netcgi_common" rel="Chapter" href="Netcgi_common.html">
<link title="Netcgi" rel="Chapter" href="Netcgi.html">
<link title="Netcgi_ajp" rel="Chapter" href="Netcgi_ajp.html">
<link title="Netcgi_scgi" rel="Chapter" href="Netcgi_scgi.html">
<link title="Netcgi_cgi" rel="Chapter" href="Netcgi_cgi.html">
<link title="Netcgi_fcgi" rel="Chapter" href="Netcgi_fcgi.html">
<link title="Netcgi_dbi" rel="Chapter" href="Netcgi_dbi.html">
<link title="Netcgi1_compat" rel="Chapter" href="Netcgi1_compat.html">
<link title="Netcgi_test" rel="Chapter" href="Netcgi_test.html">
<link title="Netcgi_porting" rel="Chapter" href="Netcgi_porting.html">
<link title="Netcgi_plex" rel="Chapter" href="Netcgi_plex.html">
<link title="Http_client" rel="Chapter" href="Http_client.html">
<link title="Telnet_client" rel="Chapter" href="Telnet_client.html">
<link title="Ftp_data_endpoint" rel="Chapter" href="Ftp_data_endpoint.html">
<link title="Ftp_client" rel="Chapter" href="Ftp_client.html">
<link title="Nethttpd_types" rel="Chapter" href="Nethttpd_types.html">
<link title="Nethttpd_kernel" rel="Chapter" href="Nethttpd_kernel.html">
<link title="Nethttpd_reactor" rel="Chapter" href="Nethttpd_reactor.html">
<link title="Nethttpd_engine" rel="Chapter" href="Nethttpd_engine.html">
<link title="Nethttpd_services" rel="Chapter" href="Nethttpd_services.html">
<link title="Nethttpd_plex" rel="Chapter" href="Nethttpd_plex.html">
<link title="Nethttpd_intro" rel="Chapter" href="Nethttpd_intro.html">
<link title="Netplex_types" rel="Chapter" href="Netplex_types.html">
<link title="Netplex_mp" rel="Chapter" href="Netplex_mp.html">
<link title="Netplex_mt" rel="Chapter" href="Netplex_mt.html">
<link title="Netplex_log" rel="Chapter" href="Netplex_log.html">
<link title="Netplex_controller" rel="Chapter" href="Netplex_controller.html">
<link title="Netplex_container" rel="Chapter" href="Netplex_container.html">
<link title="Netplex_sockserv" rel="Chapter" href="Netplex_sockserv.html">
<link title="Netplex_workload" rel="Chapter" href="Netplex_workload.html">
<link title="Netplex_main" rel="Chapter" href="Netplex_main.html">
<link title="Netplex_config" rel="Chapter" href="Netplex_config.html">
<link title="Netplex_kit" rel="Chapter" href="Netplex_kit.html">
<link title="Rpc_netplex" rel="Chapter" href="Rpc_netplex.html">
<link title="Netplex_cenv" rel="Chapter" href="Netplex_cenv.html">
<link title="Netplex_intro" rel="Chapter" href="Netplex_intro.html">
<link title="Netshm" rel="Chapter" href="Netshm.html">
<link title="Netshm_data" rel="Chapter" href="Netshm_data.html">
<link title="Netshm_hashtbl" rel="Chapter" href="Netshm_hashtbl.html">
<link title="Netshm_array" rel="Chapter" href="Netshm_array.html">
<link title="Netshm_intro" rel="Chapter" href="Netshm_intro.html">
<link title="Netconversion" rel="Chapter" href="Netconversion.html">
<link title="Netchannels" rel="Chapter" href="Netchannels.html">
<link title="Netstream" rel="Chapter" href="Netstream.html">
<link title="Mimestring" rel="Chapter" href="Mimestring.html">
<link title="Netmime" rel="Chapter" href="Netmime.html">
<link title="Netsendmail" rel="Chapter" href="Netsendmail.html">
<link title="Neturl" rel="Chapter" href="Neturl.html">
<link title="Netaddress" rel="Chapter" href="Netaddress.html">
<link title="Netbuffer" rel="Chapter" href="Netbuffer.html">
<link title="Netdate" rel="Chapter" href="Netdate.html">
<link title="Netencoding" rel="Chapter" href="Netencoding.html">
<link title="Netulex" rel="Chapter" href="Netulex.html">
<link title="Netaccel" rel="Chapter" href="Netaccel.html">
<link title="Netaccel_link" rel="Chapter" href="Netaccel_link.html">
<link title="Nethtml" rel="Chapter" href="Nethtml.html">
<link title="Netstring_str" rel="Chapter" href="Netstring_str.html">
<link title="Netstring_pcre" rel="Chapter" href="Netstring_pcre.html">
<link title="Netstring_mt" rel="Chapter" href="Netstring_mt.html">
<link title="Netmappings" rel="Chapter" href="Netmappings.html">
<link title="Netaux" rel="Chapter" href="Netaux.html">
<link title="Nethttp" rel="Chapter" href="Nethttp.html">
<link title="Netchannels_tut" rel="Chapter" href="Netchannels_tut.html">
<link title="Netmime_tut" rel="Chapter" href="Netmime_tut.html">
<link title="Netsendmail_tut" rel="Chapter" href="Netsendmail_tut.html">
<link title="Netulex_tut" rel="Chapter" href="Netulex_tut.html">
<link title="Neturl_tut" rel="Chapter" href="Neturl_tut.html">
<link title="Netsys" rel="Chapter" href="Netsys.html">
<link title="Netpop" rel="Chapter" href="Netpop.html">
<link title="Rpc_auth_dh" rel="Chapter" href="Rpc_auth_dh.html">
<link title="Rpc_key_service" rel="Chapter" href="Rpc_key_service.html">
<link title="Rpc_time" rel="Chapter" href="Rpc_time.html">
<link title="Rpc_auth_local" rel="Chapter" href="Rpc_auth_local.html">
<link title="Rtypes" rel="Chapter" href="Rtypes.html">
<link title="Xdr" rel="Chapter" href="Xdr.html">
<link title="Rpc" rel="Chapter" href="Rpc.html">
<link title="Rpc_program" rel="Chapter" href="Rpc_program.html">
<link title="Rpc_portmapper_aux" rel="Chapter" href="Rpc_portmapper_aux.html">
<link title="Rpc_packer" rel="Chapter" href="Rpc_packer.html">
<link title="Rpc_transport" rel="Chapter" href="Rpc_transport.html">
<link title="Rpc_client" rel="Chapter" href="Rpc_client.html">
<link title="Rpc_simple_client" rel="Chapter" href="Rpc_simple_client.html">
<link title="Rpc_portmapper_clnt" rel="Chapter" href="Rpc_portmapper_clnt.html">
<link title="Rpc_portmapper" rel="Chapter" href="Rpc_portmapper.html">
<link title="Rpc_server" rel="Chapter" href="Rpc_server.html">
<link title="Rpc_auth_sys" rel="Chapter" href="Rpc_auth_sys.html">
<link title="Rpc_intro" rel="Chapter" href="Rpc_intro.html">
<link title="Rpc_mapping_ref" rel="Chapter" href="Rpc_mapping_ref.html">
<link title="Rpc_ssl" rel="Chapter" href="Rpc_ssl.html">
<link title="Rpc_xti_client" rel="Chapter" href="Rpc_xti_client.html">
<link title="Shell_sys" rel="Chapter" href="Shell_sys.html">
<link title="Shell" rel="Chapter" href="Shell.html">
<link title="Shell_uq" rel="Chapter" href="Shell_uq.html">
<link title="Shell_mt" rel="Chapter" href="Shell_mt.html">
<link title="Shell_intro" rel="Chapter" href="Shell_intro.html">
<link title="Netsmtp" rel="Chapter" href="Netsmtp.html"><title>Ocamlnet 2 Reference Manual</title>
</head>
<body>
<center><h1>Ocamlnet 2 Reference Manual</h1></center>
Ocamlnet consists of a number of libraries:
<p>
<ul>
<li><code class="code">netstring</code> is about processing strings that occur in network context</li>
<li><code class="code">netcgi1</code> and <code class="code">netcgi2</code> focus on portable web applications</li>
<li><code class="code">nethttpd</code> is a web server component (HTTP server implementation)</li>
<li><code class="code">netplex</code> is a generic server framework</li>
<li><code class="code">rpc</code> implements OncRPC</li>
<li><code class="code">netclient</code> implements clients for HTTP, FTP, and Telnet </li>
<li><code class="code">equeue</code> is an event queue used for many protocol implementations</li>
<li><code class="code">shell</code> is about calling external commands</li>
<li><code class="code">netshm</code> provides shared memory for IPC purposes</li>
<li><code class="code">netsys</code> contains bindings for system functions</li>
<li><code class="code">smtp</code> and <code class="code">pop</code> are two further client implementations</li>
</ul>

A number of ideas and concepts are used throughout the libraries:
<p>
<ul>
<li><a href="Netchannels.html"><code class="code">Netchannels</code></a> are a way to abstract sequential I/O channels</li>
<li>The event queues provided by <a href="Equeue.html"><code class="code">Equeue</code></a> and <a href="Unixqueue.html"><code class="code">Unixqueue</code></a> make
  asynchronous protocol interpreters possible</li>
</ul>

<a name="netstring"></a>
<h2>The <code class="code">netstring</code> library</h2>
<p>

<code class="code">netstring</code> focuses on string processing functions.
<p>

<br>
<table class="indextable">
<tr><td><a href="Netconversion.html">Netconversion</a></td><td><div class="info">
Conversion between character encodings 
</div>
</td></tr>
<tr><td><a href="Netchannels.html">Netchannels</a></td><td><div class="info">
Object-oriented I/O: Basic types and classes 
</div>
</td></tr>
<tr><td><a href="Netstream.html">Netstream</a></td><td><div class="info">
A netstream is an input channel that is read block by block.
</div>
</td></tr>
<tr><td><a href="Mimestring.html">Mimestring</a></td><td><div class="info">
Low-level functions to parse and print mail and MIME messages 
</div>
</td></tr>
<tr><td><a href="Netmime.html">Netmime</a></td><td><div class="info">
Netmime contains high-level classes and functions to process
 mail and MIME messages.
</div>
</td></tr>
<tr><td><a href="Netsendmail.html">Netsendmail</a></td><td><div class="info">
Functions to compose and send electronic mails 
</div>
</td></tr>
<tr><td><a href="Neturl.html">Neturl</a></td><td><div class="info">
Uniform Resource Locators (URLs)
</div>
</td></tr>
<tr><td><a href="Netaddress.html">Netaddress</a></td><td><div class="info">
Parsing of mail addresses
</div>
</td></tr>
<tr><td><a href="Netbuffer.html">Netbuffer</a></td><td><div class="info">
A Netbuffer.t is a buffer that can grow and shrink dynamically.
</div>
</td></tr>
<tr><td><a href="Netdate.html">Netdate</a></td><td><div class="info">
Support for common date/time parsing and formatting.
</div>
</td></tr>
<tr><td><a href="Netencoding.html">Netencoding</a></td><td><div class="info">
Base64, Quoted Printable, URL encoding, HTML escaping
</div>
</td></tr>
<tr><td><a href="Netulex.html">Netulex</a></td><td><div class="info">
Support module for Alain Frisch's <code class="code">ulex</code> lexer generator
</div>
</td></tr>
<tr><td><a href="Netaccel.html">Netaccel</a></td><td><div class="info">
Accelerators for bytecode
</div>
</td></tr>
<tr><td><a href="Netaccel_link.html">Netaccel_link</a></td><td><div class="info">
Enables accelerator module <code class="code">Netaccel</code>
</div>
</td></tr>
<tr><td><a href="Nethtml.html">Nethtml</a></td><td><div class="info">
Parsing of HTML
</div>
</td></tr>
<tr><td><a href="Nethttp.html">Nethttp</a></td><td><div class="info">
Basic definitions for the HTTP protocol
</div>
</td></tr>
<tr><td><a href="Netstring_str.html">Netstring_str</a></td><td><div class="info">
Wrapper for regexps with <code class="code">Str</code> syntax
</div>
</td></tr>
<tr><td><a href="Netstring_pcre.html">Netstring_pcre</a></td><td><div class="info">
Wrapper for regexps with PCRE syntax
</div>
</td></tr>
<tr><td><a href="Netstring_mt.html">Netstring_mt</a></td><td><div class="info">
Initialisation code for multi-threading
</div>
</td></tr>
<tr><td><a href="Netmappings.html">Netmappings</a></td><td><div class="info">
Internal access to the character conversion database
</div>
</td></tr>
<tr><td><a href="Netaux.html">Netaux</a></td><td><div class="info">
Internal auxiliary functions 
</div>
</td></tr>
</table>

<p>

<a name="netstring_intro"></a>
<h3>Guides</h3>
<p>
<ul>
<li><a href="Netchannels_tut.html"><code class="code">Netchannels_tut</code></a>: The <code class="code">Netchannels</code> tutorial - <b>strongly 
  recommended read!</b></li>
<li><a href="Netmime_tut.html"><code class="code">Netmime_tut</code></a>: The <code class="code">Netmime</code> tutorial</li>
<li><a href="Netsendmail_tut.html"><code class="code">Netsendmail_tut</code></a>: The <code class="code">Netsendmail</code> tutorial</li>
<li><a href="Netulex_tut.html"><code class="code">Netulex_tut</code></a>: The <code class="code">Netulex</code> tutorial</li>
<li><a href="Neturl_tut.html"><code class="code">Neturl_tut</code></a>: The <code class="code">Neturl</code> tutorial</li>
</ul>

<a name="netcgi1"></a>
<h2>The <code class="code">netcgi1</code> library</h2>
<p>

The <code class="code">netcgi1</code> library is the old library for writing portable web
applications, formerly known as <code class="code">cgi</code> (this name is now an alias
for <code class="code">netcgi1</code>). Its features are frozen. A description
of its interfaces can be found <a href="netcgi1/index.html"> here</a>.
<p>

Note that it is not possible to use <code class="code">netcgi1</code> and <code class="code">netcgi2</code> at the same
time.
<p>

<a name="netcgi2"></a>
<h2>The <code class="code">netcgi2</code> library</h2>
<p>

This is the revised library for Web applications, now called <code class="code">netcgi2</code>.
<p>

<br>
<table class="indextable">
<tr><td><a href="Netcgi.html">Netcgi</a></td><td><div class="info">
Common data-structures for CGI-like connectors.
</div>
</td></tr>
<tr><td><a href="Netcgi_common.html">Netcgi_common</a></td><td><div class="info">
Functions to develop new connectors.
</div>
</td></tr>
<tr><td><a href="Netcgi_cgi.html">Netcgi_cgi</a></td><td><div class="info">
Classical CGI connector.
</div>
</td></tr>
<tr><td><a href="Netcgi_fcgi.html">Netcgi_fcgi</a></td><td><div class="info">
FastCGI connector.
</div>
</td></tr>
<tr><td><a href="Netcgi_ajp.html">Netcgi_ajp</a></td><td><div class="info">
Apache JServ Protocol (AJP) 1.3 connector.
</div>
</td></tr>
<tr><td><a href="Netcgi_scgi.html">Netcgi_scgi</a></td><td><div class="info">
SCGI connector.
</div>
</td></tr>
<tr><td><a href="Netcgi_test.html">Netcgi_test</a></td><td><div class="info">
Connector for testing your code.
</div>
</td></tr>
<tr><td><a href="Netcgi_dbi.html">Netcgi_dbi</a></td><td><div class="info">
Pools of connections for the ocamldbi generic database interface.
</div>
</td></tr>
<tr><td><a href="Netcgi1_compat.html">Netcgi1_compat</a></td><td><div class="info">
<font color="#CCCCCC">Compatibility module with the previous version of Netcgi.
</font></div>
</td></tr>
</table>

<p>

Note that it is not possible to use <code class="code">netcgi1</code> and <code class="code">netcgi2</code> at the same
time.
<p>

<a name="netcgi_intro"></a>
<h3>Guides</h3>
<p>
<ul>
<li><a href="Netcgi_porting.html"><code class="code">Netcgi_porting</code></a>: Porting <code class="code">netcgi1</code> programs to <code class="code">netcgi2</code></li>
</ul>

<a name="nethttpd"></a>
<h2>The <code class="code">nethttpd</code> library</h2>
<p>

The <code class="code">nethttpd</code> library is a Web server component written in O'Caml. 
For a full web server, you'll also need <code class="code">netplex</code>.
<p>

<br>
<table class="indextable">
<tr><td><a href="Nethttpd_types.html">Nethttpd_types</a></td><td><div class="info">
Type definitions for the HTTP daemon
</div>
</td></tr>
<tr><td><a href="Nethttpd_kernel.html">Nethttpd_kernel</a></td><td><div class="info">
The protocol kernel of the HTTP daemon
</div>
</td></tr>
<tr><td><a href="Nethttpd_reactor.html">Nethttpd_reactor</a></td><td><div class="info">
The reactive encapsulation of the HTTP daemon
</div>
</td></tr>
<tr><td><a href="Nethttpd_engine.html">Nethttpd_engine</a></td><td><div class="info">
The event-based encapsulation of the HTTP daemon
</div>
</td></tr>
<tr><td><a href="Nethttpd_services.html">Nethttpd_services</a></td><td><div class="info">
Service Providers for HTTP daemon
</div>
</td></tr>
<tr><td><a href="Nethttpd_plex.html">Nethttpd_plex</a></td><td><div class="info">
Netplex support
</div>
</td></tr>
</table>

<p>

<a name="nethttpd_intro"></a>
<h3>Guides</h3>
<p>
<ul>
<li><a href="Nethttpd_intro.html"><code class="code">Nethttpd_intro</code></a>: Overview over the HTTP daemon</li>
</ul>

<a name="netplex"></a>
<h2>The <code class="code">netplex</code> library</h2>
<p>

The <code class="code">netplex</code> library is a protocol-independent server framework. 
Especially, it can be used in conjunction with <code class="code">nethttpd</code> to
build web servers, and with <code class="code">rpc</code> to build RPC servers.
<p>

<br>
<table class="indextable">
<tr><td><a href="Netplex_types.html">Netplex_types</a></td><td><div class="info">
Types for <code class="code">Netplex</code>
</div>
</td></tr>
<tr><td><a href="Netplex_config.html">Netplex_config</a></td><td><div class="info">
Read the configuration file
</div>
</td></tr>
<tr><td><a href="Netplex_controller.html">Netplex_controller</a></td><td><div class="info">
Controller
</div>
</td></tr>
<tr><td><a href="Netplex_container.html">Netplex_container</a></td><td><div class="info">
Containers
</div>
</td></tr>
<tr><td><a href="Netplex_sockserv.html">Netplex_sockserv</a></td><td><div class="info">
Socket service creation
</div>
</td></tr>
<tr><td><a href="Netplex_workload.html">Netplex_workload</a></td><td><div class="info">
Workload management
</div>
</td></tr>
<tr><td><a href="Netplex_kit.html">Netplex_kit</a></td><td><div class="info">
Netplex toolkit
</div>
</td></tr>
<tr><td><a href="Netplex_log.html">Netplex_log</a></td><td><div class="info">
Loggers
</div>
</td></tr>
<tr><td><a href="Netplex_main.html">Netplex_main</a></td><td><div class="info">
Main program for Netplex servers
</div>
</td></tr>
<tr><td><a href="Netplex_mp.html">Netplex_mp</a></td><td><div class="info">
Multi-processing provider
</div>
</td></tr>
<tr><td><a href="Netplex_mt.html">Netplex_mt</a></td><td><div class="info">
Multi-threading provider
</div>
</td></tr>
<tr><td><a href="Rpc_netplex.html">Rpc_netplex</a></td><td><div class="info">
Netplex support for RPC servers (TCP only)
</div>
</td></tr>
</table>

<p>

<a name="nethttpd_intro"></a>
<h3>Guides</h3>
<p>
<ul>
<li><a href="Netplex_intro.html"><code class="code">Netplex_intro</code></a>: Introduction to <code class="code">Netplex</code></li>
</ul>

<a name="equeue"></a>
<h2>The <code class="code">rpc</code> library</h2>
<p>

This library implements OncRPC (alias SunRPC).
<p>

<br>
<table class="indextable">
<tr><td><a href="Rtypes.html">Rtypes</a></td><td><div class="info">
Basic types
</div>
</td></tr>
<tr><td><a href="Xdr.html">Xdr</a></td><td><div class="info">
External Data Representation
</div>
</td></tr>
<tr><td><a href="Rpc.html">Rpc</a></td><td><div class="info">
Common types and exceptions
</div>
</td></tr>
<tr><td><a href="Rpc_program.html">Rpc_program</a></td><td><div class="info">
RPC programs
</div>
</td></tr>
<tr><td><a href="Rpc_client.html">Rpc_client</a></td><td><div class="info">
RPC clients
</div>
</td></tr>
<tr><td><a href="Rpc_simple_client.html">Rpc_simple_client</a></td><td><div class="info">
Synchronous API for RPC clients
</div>
</td></tr>
<tr><td><a href="Rpc_server.html">Rpc_server</a></td><td><div class="info">
RPC servers
</div>
</td></tr>
<tr><td><a href="Rpc_auth_sys.html">Rpc_auth_sys</a></td><td><div class="info">
Authentication module AUTH_SYS
</div>
</td></tr>
<tr><td><a href="Rpc_portmapper.html">Rpc_portmapper</a></td><td><div class="info">
Portmapper version 2
</div>
</td></tr>
<tr><td><a href="Rpc_portmapper_aux.html">Rpc_portmapper_aux</a></td><td></td></tr>
<tr><td><a href="Rpc_portmapper_clnt.html">Rpc_portmapper_clnt</a></td><td></td></tr>
<tr><td><a href="Rpc_transport.html">Rpc_transport</a></td><td><div class="info">
Low-level RPC transporters
</div>
</td></tr>
<tr><td><a href="Rpc_packer.html">Rpc_packer</a></td><td></td></tr>
</table>

<p>

<a name="rpc_intro"></a>
<h3>Guides</h3>
<p>
<ul>
<li><a href="Rpc_intro.html"><code class="code">Rpc_intro</code></a>: Introduction</li>
<li><a href="Rpc_mapping_ref.html"><code class="code">Rpc_mapping_ref</code></a>: RPC Language Mapping Reference</li>
</ul>

<a name="rpc_local"></a>
<h3>The <code class="code">rpc-auth-local</code> extension</h3>
<p>

Authentication for local socket connections.
<p>

<br>
<table class="indextable">
<tr><td><a href="Rpc_auth_local.html">Rpc_auth_local</a></td><td><div class="info">
Return the authentication method <code class="code">AUTH_LOCAL</code>.
</div>
</td></tr>
</table>

<p>

<a name="rpc_authdh"></a>
<h3>The <code class="code">rpc-auth-dh</code> extension</h3>
<p>

This is Diffie-Hellman authentication for OncRPC (also known as
"Secure RPC").
<p>

<br>
<table class="indextable">
<tr><td><a href="Rpc_auth_dh.html">Rpc_auth_dh</a></td><td><div class="info">
Diffie-Hellman authentication (AUTH_DH alias AUTH_DES)
</div>
</td></tr>
<tr><td><a href="Rpc_key_service.html">Rpc_key_service</a></td><td><div class="info">
Contact the keyserv daemon to encrypt/decrypt data with the common
 key.
</div>
</td></tr>
<tr><td><a href="Rpc_time.html">Rpc_time</a></td><td><div class="info">
Get the time of the server (using the RFC 868 netdate protocol)
</div>
</td></tr>
</table>

<p>

<a name="rpc_xti"></a>
<h3>The <code class="code">rpc-xti</code> extension</h3>
<p>

System V provides a network API called XTI in addition to the socket API.
This library allows it to connect to RPC services that can only be reached
over a local XTI connection ("cots" connection).
<p>

<br>
<table class="indextable">
<tr><td><a href="Rpc_xti_client.html">Rpc_xti_client</a></td><td><div class="info">
Minimal support for TI-RPC over the XTI API
</div>
</td></tr>
</table>

<p>

<a name="rpc_ssl"></a>
<h3>The <code class="code">rpc_ssl</code> extension</h3>
<p>

This library allows you to tunnel RPC through SSL/TLS.
<p>

<br>
<table class="indextable">
<tr><td><a href="Rpc_ssl.html">Rpc_ssl</a></td><td><div class="info">
Securing RPC by SSL
</div>
</td></tr>
</table>

<p>

<a name="netclient"></a>
<h2>The <code class="code">netclient</code> library</h2>
<p>

This library includes clients for HTTP, Telnet, and (incomplete) FTP.
<p>

<br>
<table class="indextable">
<tr><td><a href="Http_client.html">Http_client</a></td><td><div class="info">
HTTP 1.1 client
</div>
</td></tr>
<tr><td><a href="Telnet_client.html">Telnet_client</a></td><td><div class="info">
Telnet client
</div>
</td></tr>
<tr><td><a href="Ftp_client.html">Ftp_client</a></td><td><div class="info">
FTP client
</div>
</td></tr>
<tr><td><a href="Ftp_data_endpoint.html">Ftp_data_endpoint</a></td><td><div class="info">
Senders and receivers for the FTP data connection
</div>
</td></tr>
</table>

<p>

<a name="equeue"></a>
<h2>The <code class="code">equeue</code> library</h2>
<p>

<code class="code">equeue</code> is a fundamental library for event queues. It is mainly used
by a number of other libraries of Ocamlnet to parallelize network code
(so-called multiplexing).
<p>

<br>
<table class="indextable">
<tr><td><a href="Equeue.html">Equeue</a></td><td><div class="info">
<code class="code">Equeue</code> implements generic event queues.
</div>
</td></tr>
<tr><td><a href="Unixqueue.html">Unixqueue</a></td><td><div class="info">
This module generalizes the <code class="code">Unix.select</code> function.
</div>
</td></tr>
<tr><td><a href="Unixqueue_mt.html">Unixqueue_mt</a></td><td><div class="info">
This module initializes Unixqueue for multi-threaded programs.
</div>
</td></tr>
<tr><td><a href="Uq_engines.html">Uq_engines</a></td><td><div class="info">
An <b>engine</b> performs a certain task in an autonomous way.
</div>
</td></tr>
<tr><td><a href="Uq_socks5.html">Uq_socks5</a></td><td><div class="info">
This module implements a SOCKS version 5 client (see RFC 1928) for
 use with the <a href="Uq_engines.html#VALconnector"><code class="code">Uq_engines.connector</code></a>, <a href="Uq_engines.html#VALlistener"><code class="code">Uq_engines.listener</code></a>, and
 <a href="Uq_engines.html#VALdatagram_provider"><code class="code">Uq_engines.datagram_provider</code></a> engine factories.
</div>
</td></tr>
</table>

<p>

<a name="equeue_intro"></a>
<h3>Guides</h3>
<p>
<ul>
<li><a href="Equeue_intro.html"><code class="code">Equeue_intro</code></a>: Introduction to programming with <code class="code">equeue</code></li>
</ul>

<a name="equeue_gtk"></a>
<h3>The <code class="code">equeue-gtk1</code> and <code class="code">equeue-gtk2</code> extensions</h3>
<p>

Extensions for <code class="code">equeue</code> to integrate the event queue into user interfaces
made with lablgtk and lablgtk2
<p>

<br>
<table class="indextable">
<tr><td><a href="Uq_gtk.html">Uq_gtk</a></td><td><div class="info">
Integration with lablgtk/lablgtk2 event systems
</div>
</td></tr>
</table>

<p>

<a name="equeue_ssl"></a>
<h3>The <code class="code">equeue-ssl</code> extension</h3>
<p>

Extensions for <code class="code">equeue</code> to support SSL
<p>

<br>
<table class="indextable">
<tr><td><a href="Uq_ssl.html">Uq_ssl</a></td><td><div class="info">
Asynchronous SSL connections
</div>
</td></tr>
</table>

<p>

<a name="equeue_tcl"></a>
<h3>The <code class="code">equeue-tcl</code> extension</h3>
<p>

Extension for <code class="code">equeue</code> to integrate the event queue into user interfaces
made with labltk
<p>

<br>
<table class="indextable">
<tr><td><a href="Uq_tcl.html">Uq_tcl</a></td><td><div class="info">
Integration with the labltk event system
</div>
</td></tr>
</table>

<p>

<a name="pop"></a>
<h2>The <code class="code">pop</code> library</h2>
<p>

This is a simple POP 3 client.
<p>

<br>
<table class="indextable">
<tr><td><a href="Netpop.html">Netpop</a></td><td><div class="info">
 This is an interface for the Post Office Protocol - Version 3
 (POP3) as specifed by RFC 1939.
</div>
</td></tr>
</table>

<p>

<a name="smtp"></a>
<h2>The <code class="code">smtp</code> library</h2>
<p>

This is a simple SMTP client.
<p>

<br>
<table class="indextable">
<tr><td><a href="Netsmtp.html">Netsmtp</a></td><td><div class="info">
 This is an interface for the Simple Mail Tranfer Protocol (SMTP)
 as specified by RFC 2821.
</div>
</td></tr>
</table>

<p>

<a name="shell"></a>
<h2>The <code class="code">shell</code> library</h2>
<p>

The <code class="code">shell</code> library allows you to start external commands. It is integrated
into <code class="code">equeue</code>.
<p>

<br>
<table class="indextable">
<tr><td><a href="Shell.html">Shell</a></td><td><div class="info">
Calls external programs, creates pipelines, etc.
</div>
</td></tr>
<tr><td><a href="Shell_sys.html">Shell_sys</a></td><td><div class="info">
Calls external programs, creates pipelines, etc.
</div>
</td></tr>
<tr><td><a href="Shell_uq.html">Shell_uq</a></td><td><div class="info">
Run shell commands within Unixqueues
</div>
</td></tr>
<tr><td><a href="Shell_mt.html">Shell_mt</a></td><td><div class="info">
Multi-threading support
</div>
</td></tr>
</table>

<p>

<a name="shell_intro"></a>
<h3>Guides</h3>
<p>
<ul>
<li><a href="Shell_intro.html"><code class="code">Shell_intro</code></a>: Motivation for <code class="code">shell</code></li>
</ul>

<a name="netshm"></a>
<h2>The <code class="code">netshm</code> library</h2>
<p>

The <code class="code">netshm</code> library manages a shared memory object either as hash table
or array. It is designed to be used in multi-processing program architectures.
<p>

<br>
<table class="indextable">
<tr><td><a href="Netshm.html">Netshm</a></td><td><div class="info">
Shared memory for O'Caml programs using multi-processing
</div>
</td></tr>
<tr><td><a href="Netshm_data.html">Netshm_data</a></td><td><div class="info">
Data representation for shared memory
</div>
</td></tr>
<tr><td><a href="Netshm_hashtbl.html">Netshm_hashtbl</a></td><td><div class="info">
Hash tables in shared memory
</div>
</td></tr>
<tr><td><a href="Netshm_array.html">Netshm_array</a></td><td><div class="info">
Arrays in shared memory
</div>
</td></tr>
</table>

<p>

<a name="netshm_intro"></a>
<h3>Guides</h3>
<p>
<ul>
<li><a href="Netshm_intro.html"><code class="code">Netshm_intro</code></a>: Shared Memory for IPC</li>
</ul>

<a name="netsys"></a>
<h2>The <code class="code">netsys</code> library</h2>
<p>

The <code class="code">netsys</code> library contains a number of low-level functions used by
other Ocamlnet libraries.
<p>

<br>
<table class="indextable">
<tr><td><a href="Netsys.html">Netsys</a></td><td><div class="info">
Some POSIX system calls missing in the <code class="code">Unix</code> module
</div>
</td></tr>
</table>

<p>

<a name="2_Index"></a>
<h2>Index</h2>
<p>

<a href="index_types.html">Index of types</a><br>
<a href="index_exceptions.html">Index of exceptions</a><br>
<a href="index_values.html">Index of values</a><br>
<a href="index_attributes.html">Index of class attributes</a><br>
<a href="index_methods.html">Index of class methods</a><br>
<a href="index_classes.html">Index of classes</a><br>
<a href="index_class_types.html">Index of class types</a><br>
<a href="index_modules.html">Index of modules</a><br>
<a href="index_module_types.html">Index of module types</a><br>

<p>

<a name="2_Authors"></a>
<h2>Authors</h2>
<p>

The Ocamlnet libraries have been initially written by Gerd Stolpmann and
Patrick Doane.
<p>

Contributions by
<p>
<ul>
<li>Nicolas George: Netdate</li>
<li>Eric Stokes: FastCGI support</li>
<li>Pierre Habouzit: SMTP client</li>
<li>Christophe Troestler: Revised version of <code class="code">netcgi</code></li>
<li>Deokhwan Kim: Support for EUC-KR</li>
</ul>

Sponsorships by
<p>
<ul>
<li>Baretta s.r.l: Nethttpd</li>
<li>California State University: SSL support for RPC, Netplex</li>
</ul>
<br>