Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 1f9eb832ba1e4b88d9a5c2b384813bb4 > files > 1875

kdelibs3-apidocs-3.5.10-31.fc15.noarch.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US">

<head>
  <title>kdecore: KNetwork::KActiveSocketBase Class Reference (kdecore)</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  <meta http-equiv="Content-Style-Type" content="text/css" />

  <meta http-equiv="pics-label" content='(pics-1.1 "http://www.icra.org/ratingsv02.html" comment "ICRAonline DE v2.0" l gen true for "http://www.kde.org"  r (nz 1 vz 1 lz 1 oz 1 cb 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://www.kde.org"  r (n 0 s 0 v 0 l 0))' />

  <meta name="trademark" content="KDE e.V." />
  <meta name="description" content="K Desktop Environment Homepage, KDE.org" />
  <meta name="MSSmartTagsPreventParsing" content="true" />
  <meta name="robots" content="all" />

  <link rel="shortcut icon" href="../../favicon.ico" />

<link rel="stylesheet" media="screen" type="text/css" title="APIDOX" href="doxygen.css" />



</head>

<body>

<div id="nav_header_top" align="right">
  <a href="#content" class="doNotDisplay" accesskey="2">Skip to main content ::</a>

  <a href="../.."><img id="nav_header_logo" alt="Home" align="left" src="../../kde_gear_64.png" border="0" /></a>
  <span class="doNotDisplay">::</span>

  <div id="nav_header_title" align="left">KDE API Reference</div>


</div>

<div id="nav_header_bottom" align="right">
  <span class="doNotDisplay">:: <a href="#navigation" accesskey="5">Skip to Link Menu</a><br/></span>
  <div id="nav_header_bottom_right" style="text-align: left;">
/ <a href="../..">API Reference</a>
 / <a href=".">kdecore</a>
  </div>
</div>


<table id="main" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
      <td valign="top" class="menuheader" height="0"></td>

  <td id="contentcolumn" valign="top" rowspan="2" >
    <div id="content" style="padding-top: 0px;"><div style="width:100%; margin: 0px; padding: 0px;">
    <a name="content"></a>


<!-- Generated by Doxygen 1.7.4 -->
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespaceKNetwork.html">KNetwork</a>      </li>
      <li class="navelem"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html">KActiveSocketBase</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">KNetwork::KActiveSocketBase Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="KNetwork::KActiveSocketBase" --><!-- doxytag: inherits="QIODevice,KNetwork::KSocketBase" -->
<p>Abstract class for active sockets.  
 <a href="classKNetwork_1_1KActiveSocketBase.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="ksocketbase_8h_source.html">ksocketbase.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for KNetwork::KActiveSocketBase:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classKNetwork_1_1KActiveSocketBase.png" usemap="#KNetwork::KActiveSocketBase_map" alt=""/>
  <map id="KNetwork::KActiveSocketBase_map" name="KNetwork::KActiveSocketBase_map">
<area href="qiodevice.html" alt="QIODevice" shape="rect" coords="278,0,491,24"/>
<area href="classKNetwork_1_1KSocketBase.html" title="Basic socket functionality." alt="KNetwork::KSocketBase" shape="rect" coords="501,0,714,24"/>
<area href="classKNetwork_1_1KClientSocketBase.html" title="Abstract client socket class." alt="KNetwork::KClientSocketBase" shape="rect" coords="111,112,324,136"/>
<area href="classKNetwork_1_1KSocketDevice.html" title="Low-level socket functionality." alt="KNetwork::KSocketDevice" shape="rect" coords="669,112,882,136"/>
<area href="classKNetwork_1_1KDatagramSocket.html" title="A socket that operates on datagrams." alt="KNetwork::KDatagramSocket" shape="rect" coords="0,168,213,192"/>
<area href="classKNetwork_1_1KStreamSocket.html" title="Simple stream socket." alt="KNetwork::KStreamSocket" shape="rect" coords="223,168,436,192"/>
<area href="classKNetwork_1_1KHttpProxySocketDevice.html" title="The low-level backend for HTTP proxying." alt="KNetwork::KHttpProxySocketDevice" shape="rect" coords="446,168,659,192"/>
<area href="classKNetwork_1_1KMulticastSocketImpl.html" title="The low-level backend for multicasting sockets." alt="KNetwork::KMulticastSocketImpl" shape="rect" coords="669,168,882,192"/>
<area href="classKNetwork_1_1KSocksSocketDevice.html" title="The low-level class for SOCKS proxying." alt="KNetwork::KSocksSocketDevice" shape="rect" coords="892,168,1105,192"/>
<area href="classKNetwork_1_1KMulticastSocket.html" title="A multicast-capable datagram socket class." alt="KNetwork::KMulticastSocket" shape="rect" coords="0,224,213,248"/>
<area href="classKNetwork_1_1KBufferedSocket.html" title="Buffered stream sockets." alt="KNetwork::KBufferedSocket" shape="rect" coords="223,224,436,248"/>
</map>
 </div></div>

<p><a href="classKNetwork_1_1KActiveSocketBase-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#a01cceae9ac4ca7794062792602a8c28c">KActiveSocketBase</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#a214885089c09cf53774592986c3b174a">~KActiveSocketBase</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#aa2e883758d6ed8d32960c9b980d7f07f">bind</a> (const <a class="el" href="classKNetwork_1_1KResolverEntry.html">KResolverEntry</a> &amp;address)=0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#a828afa08c8017b10986e52b1efea359f">connect</a> (const <a class="el" href="classKNetwork_1_1KResolverEntry.html">KResolverEntry</a> &amp;address)=0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#a1cfeec50aa9518e58ece1f97baea8e56">disconnect</a> ()=0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="elRef" href="qiodevice.html#Offset">Offset</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#acab45e62418c819f75f1f03a19520ab2">size</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="elRef" href="qiodevice.html#Offset">Offset</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#ac0052a9210f41b0385f03caf890e5300">at</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#a12018978c217e89b3515f24b78287c22">at</a> (<a class="elRef" href="qiodevice.html#Offset">Offset</a>)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#acf9c1296efd8e78aea51bfc7c93d6bfc">atEnd</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual Q_LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#a27abcb04c3127b4d702f9fa308eea99a">bytesAvailable</a> () const =0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual Q_LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#ad89800cfae4755458955673247b9682d">waitForMore</a> (int msecs, bool *timeout=0L)=0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual Q_LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#a7b4b7304817fd573c77839982b5e3cd3">readBlock</a> (char *data, Q_ULONG len)=0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual Q_LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#ae26adda2fe7d1c78665b0c5e37974fee">readBlock</a> (char *data, Q_ULONG maxlen, <a class="el" href="classKNetwork_1_1KSocketAddress.html">KSocketAddress</a> &amp;from)=0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual Q_LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#a746adb9cc1cc7e734117160cf05fd92e">peekBlock</a> (char *data, Q_ULONG maxlen)=0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual Q_LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#a109c0e1cb604f78c2f8f2f407868fd91">peekBlock</a> (char *data, Q_ULONG maxlen, <a class="el" href="classKNetwork_1_1KSocketAddress.html">KSocketAddress</a> &amp;from)=0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual Q_LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#a504bf1dcb57f6724017045882a647464">writeBlock</a> (const char *data, Q_ULONG len)=0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual Q_LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#a972d6a9bbf5ad43aa82b71bef2a1b830">writeBlock</a> (const char *data, Q_ULONG len, const <a class="el" href="classKNetwork_1_1KSocketAddress.html">KSocketAddress</a> &amp;to)=0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#ad690d9eea448eb6450fcfe2961821c48">getch</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#a5d7cbef5e23b667e4b735dd63594da71">putch</a> (int ch)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#a383d573b0f319176aeeec096360be047">ungetch</a> (int)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classKNetwork_1_1KSocketAddress.html">KSocketAddress</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#a55d3c9eec3fbf3646b453526b5129318">localAddress</a> () const =0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classKNetwork_1_1KSocketAddress.html">KSocketAddress</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#aa1c158f12589be4dbc64aaeb68a170fe">peerAddress</a> () const =0</td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#a3590741f0f0046536dac3a8ccb31f565">setError</a> (int <a class="elRef" href="qiodevice.html#status">status</a>, <a class="el" href="classKNetwork_1_1KSocketBase.html#a983f608943115b037482f9647f7fb661">SocketError</a> error)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KActiveSocketBase.html#a8ab660128508224c5124024b1a93248e">resetError</a> ()</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Abstract class for active sockets. </p>
<p>This class provides the standard interfaces for active sockets, i.e., sockets that are used to connect to external addresses.</p>
<dl class="author"><dt><b>Author:</b></dt><dd>Thiago Macieira &lt;<a href="mailto:thiago.macieira@kdemail.net">thiago.macieira@kdemail.net</a>&gt; </dd></dl>

<p>Definition at line <a class="el" href="ksocketbase_8h_source.html#l00443">443</a> of file <a class="el" href="ksocketbase_8h_source.html">ksocketbase.h</a>.</p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a01cceae9ac4ca7794062792602a8c28c"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::KActiveSocketBase" ref="a01cceae9ac4ca7794062792602a8c28c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">KActiveSocketBase::KActiveSocketBase </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>

<p>Definition at line <a class="el" href="ksocketbase_8cpp_source.html#l00283">283</a> of file <a class="el" href="ksocketbase_8cpp_source.html">ksocketbase.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a214885089c09cf53774592986c3b174a"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::~KActiveSocketBase" ref="a214885089c09cf53774592986c3b174a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">KActiveSocketBase::~KActiveSocketBase </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destructor. </p>

<p>Definition at line <a class="el" href="ksocketbase_8cpp_source.html#l00287">287</a> of file <a class="el" href="ksocketbase_8cpp_source.html">ksocketbase.cpp</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="ac0052a9210f41b0385f03caf890e5300"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::at" ref="ac0052a9210f41b0385f03caf890e5300" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="elRef" href="qiodevice.html#Offset">Offset</a> KNetwork::KActiveSocketBase::at </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This call is not supported on sockets. </p>
<p>Reimplemented from <a class="elRef" href="qiodevice.html">QIODevice</a>. This will always return 0. </p>

<p>Definition at line <a class="el" href="ksocketbase_8h_source.html#l00514">514</a> of file <a class="el" href="ksocketbase_8h_source.html">ksocketbase.h</a>.</p>

</div>
</div>
<a class="anchor" id="a12018978c217e89b3515f24b78287c22"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::at" ref="a12018978c217e89b3515f24b78287c22" args="(Offset)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool KNetwork::KActiveSocketBase::at </td>
          <td>(</td>
          <td class="paramtype"><a class="elRef" href="qiodevice.html#Offset">Offset</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This call is not supported on sockets. </p>
<p>Reimplemented from <a class="elRef" href="qiodevice.html">QIODevice</a>. This will always return false. </p>

<p>Reimplemented from <a class="elRef" href="qiodevice.html#at-2">QIODevice</a>.</p>

<p>Definition at line <a class="el" href="ksocketbase_8h_source.html#l00521">521</a> of file <a class="el" href="ksocketbase_8h_source.html">ksocketbase.h</a>.</p>

</div>
</div>
<a class="anchor" id="acf9c1296efd8e78aea51bfc7c93d6bfc"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::atEnd" ref="acf9c1296efd8e78aea51bfc7c93d6bfc" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool KNetwork::KActiveSocketBase::atEnd </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This call is not supported on sockets. </p>
<p>Reimplemented from <a class="elRef" href="qiodevice.html">QIODevice</a>. This will always return true. </p>

<p>Definition at line <a class="el" href="ksocketbase_8h_source.html#l00528">528</a> of file <a class="el" href="ksocketbase_8h_source.html">ksocketbase.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa2e883758d6ed8d32960c9b980d7f07f"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::bind" ref="aa2e883758d6ed8d32960c9b980d7f07f" args="(const KResolverEntry &amp;address)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool KNetwork::KActiveSocketBase::bind </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classKNetwork_1_1KResolverEntry.html">KResolverEntry</a> &amp;&#160;</td>
          <td class="paramname"><em>address</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Binds this socket to the given address. </p>
<p>The socket will be constructed with the address family, socket type and protocol as those given in the <code>address</code> object.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">address</td><td>the address to bind to </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the binding was successful, false otherwise </dd></dl>

<p>Implemented in <a class="el" href="classKNetwork_1_1KClientSocketBase.html#a9aec53d1633d9fae4fa3651e9055f091">KNetwork::KClientSocketBase</a>, <a class="el" href="classKNetwork_1_1KDatagramSocket.html#aa2503baee8d18f2bfa5e0a5ebdbeadec">KNetwork::KDatagramSocket</a>, <a class="el" href="classKNetwork_1_1KSocketDevice.html#ac2af1d881218358cd5951982a404f3de">KNetwork::KSocketDevice</a>, <a class="el" href="classKNetwork_1_1KSocksSocketDevice.html#aee4733f833f2330de1f0d64967bd4357">KNetwork::KSocksSocketDevice</a>, and <a class="el" href="classKNetwork_1_1KStreamSocket.html#a918ccf9ad3634acb27428f5eb34fe8c9">KNetwork::KStreamSocket</a>.</p>

</div>
</div>
<a class="anchor" id="a27abcb04c3127b4d702f9fa308eea99a"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::bytesAvailable" ref="a27abcb04c3127b4d702f9fa308eea99a" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Q_LONG KNetwork::KActiveSocketBase::bytesAvailable </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the number of bytes available for reading without blocking. </p>

<p>Implemented in <a class="el" href="classKNetwork_1_1KBufferedSocket.html#adf11270247355aa1aa288f79d69cdc67">KNetwork::KBufferedSocket</a>, <a class="el" href="classKNetwork_1_1KClientSocketBase.html#a3838a3d1e30df942f09d385c512dc911">KNetwork::KClientSocketBase</a>, and <a class="el" href="classKNetwork_1_1KSocketDevice.html#a37c2dc8a6d3ce0d0444988e64c2134e4">KNetwork::KSocketDevice</a>.</p>

</div>
</div>
<a class="anchor" id="a828afa08c8017b10986e52b1efea359f"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::connect" ref="a828afa08c8017b10986e52b1efea359f" args="(const KResolverEntry &amp;address)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool KNetwork::KActiveSocketBase::connect </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classKNetwork_1_1KResolverEntry.html">KResolverEntry</a> &amp;&#160;</td>
          <td class="paramname"><em>address</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Connect to a remote host. </p>
<p>This will make this socket try to connect to the remote host. If the socket is not yet created, it will be created using the address family, socket type and protocol specified in the <code>address</code> object.</p>
<p>If this function returns with error InProgress, calling it again with the same address after a time will cause it to test if the connection has succeeded in the mean time.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">address</td><td>the address to connect to </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the connection was successful or has been successfully queued; false if an error occurred. </dd></dl>

<p>Implemented in <a class="el" href="classKNetwork_1_1KClientSocketBase.html#a7acafce0d219b075f66205a6445513ed">KNetwork::KClientSocketBase</a>, <a class="el" href="classKNetwork_1_1KDatagramSocket.html#a0a4e8fe71eebe45ec82d43cc2aebcb48">KNetwork::KDatagramSocket</a>, <a class="el" href="classKNetwork_1_1KHttpProxySocketDevice.html#ac79e145184554b232242f03098addf45">KNetwork::KHttpProxySocketDevice</a>, <a class="el" href="classKNetwork_1_1KMulticastSocketImpl.html#a8944168d11125ffd6f35db9ae14b89eb">KNetwork::KMulticastSocketImpl</a>, <a class="el" href="classKNetwork_1_1KSocketDevice.html#a79e1e96139551a39986d6b6a47018fa1">KNetwork::KSocketDevice</a>, <a class="el" href="classKNetwork_1_1KSocksSocketDevice.html#a95a39b3e19ba851e1af54a6c92396a51">KNetwork::KSocksSocketDevice</a>, and <a class="el" href="classKNetwork_1_1KStreamSocket.html#a35c5db369c7190cb338585f1995b264e">KNetwork::KStreamSocket</a>.</p>

</div>
</div>
<a class="anchor" id="a1cfeec50aa9518e58ece1f97baea8e56"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::disconnect" ref="a1cfeec50aa9518e58ece1f97baea8e56" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool KNetwork::KActiveSocketBase::disconnect </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Disconnects this socket from a connection, if possible. </p>
<p>If this socket was connected to an endpoint, the connection is severed, but the socket is not closed. If the socket wasn't connected, this function does nothing.</p>
<p>If the socket hadn't yet been created, this function does nothing either.</p>
<p>Not all socket types can disconnect. Most notably, only connectionless datagram protocols such as UDP support this operation.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the socket is now disconnected or false on error. </dd></dl>

<p>Implemented in <a class="el" href="classKNetwork_1_1KClientSocketBase.html#a6501f82acdcc035288cec691dac4c634">KNetwork::KClientSocketBase</a>, and <a class="el" href="classKNetwork_1_1KSocketDevice.html#a2d136dbef9b5431638b9dc641954e8d2">KNetwork::KSocketDevice</a>.</p>

</div>
</div>
<a class="anchor" id="ad690d9eea448eb6450fcfe2961821c48"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::getch" ref="ad690d9eea448eb6450fcfe2961821c48" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int KActiveSocketBase::getch </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reads one character from the socket. </p>
<p>Reimplementation from <a class="elRef" href="qiodevice.html">QIODevice</a>. See <a class="elRef" href="qiodevice.html#getch">QIODevice::getch</a> for more information. </p>

<p>Reimplemented from <a class="elRef" href="qiodevice.html#getch">QIODevice</a>.</p>

<p>Definition at line <a class="el" href="ksocketbase_8cpp_source.html#l00291">291</a> of file <a class="el" href="ksocketbase_8cpp_source.html">ksocketbase.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a55d3c9eec3fbf3646b453526b5129318"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::localAddress" ref="a55d3c9eec3fbf3646b453526b5129318" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classKNetwork_1_1KSocketAddress.html">KSocketAddress</a> KNetwork::KActiveSocketBase::localAddress </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns this socket's local address. </p>

<p>Implemented in <a class="el" href="classKNetwork_1_1KClientSocketBase.html#a52b0418fe449d644a525f2f83e059df9">KNetwork::KClientSocketBase</a>, <a class="el" href="classKNetwork_1_1KSocketDevice.html#a864926e9f316d16e3dacba8f3ffe892b">KNetwork::KSocketDevice</a>, and <a class="el" href="classKNetwork_1_1KSocksSocketDevice.html#aa407077303bdaae671d2cc2c611b048e">KNetwork::KSocksSocketDevice</a>.</p>

</div>
</div>
<a class="anchor" id="a746adb9cc1cc7e734117160cf05fd92e"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::peekBlock" ref="a746adb9cc1cc7e734117160cf05fd92e" args="(char *data, Q_ULONG maxlen)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Q_LONG KNetwork::KActiveSocketBase::peekBlock </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Q_ULONG&#160;</td>
          <td class="paramname"><em>maxlen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Peeks the data in the socket. </p>
<p>This call will allow you to peek the data to be received without actually receiving it -- that is, it will be available for further peekings and for the next read call.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>where to write the peeked data to </td></tr>
    <tr><td class="paramname">maxlen</td><td>the maximum number of bytes to peek </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the actual number of bytes copied into <code>data</code> </dd></dl>

<p>Implemented in <a class="el" href="classKNetwork_1_1KBufferedSocket.html#a78a2d29681fbc03b4a230fe0659d5daf">KNetwork::KBufferedSocket</a>, <a class="el" href="classKNetwork_1_1KClientSocketBase.html#a66e8cdab3fe734c8ba5d478bd112cdad">KNetwork::KClientSocketBase</a>, <a class="el" href="classKNetwork_1_1KSocketDevice.html#a731b3835f8bbee00e37210bac05ce59b">KNetwork::KSocketDevice</a>, and <a class="el" href="classKNetwork_1_1KSocksSocketDevice.html#a866b50bf93199a3fa8773a2c1c243e2b">KNetwork::KSocksSocketDevice</a>.</p>

</div>
</div>
<a class="anchor" id="a109c0e1cb604f78c2f8f2f407868fd91"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::peekBlock" ref="a109c0e1cb604f78c2f8f2f407868fd91" args="(char *data, Q_ULONG maxlen, KSocketAddress &amp;from)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Q_LONG KNetwork::KActiveSocketBase::peekBlock </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Q_ULONG&#160;</td>
          <td class="paramname"><em>maxlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classKNetwork_1_1KSocketAddress.html">KSocketAddress</a> &amp;&#160;</td>
          <td class="paramname"><em>from</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Peeks the data in the socket and the source address. </p>
<p>This call will allow you to peek the data to be received without actually receiving it -- that is, it will be available for further peekings and for the next read call.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>where to write the peeked data to </td></tr>
    <tr><td class="paramname">maxlen</td><td>the maximum number of bytes to peek </td></tr>
    <tr><td class="paramname">from</td><td>the address of the sender will be stored here </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the actual number of bytes copied into <code>data</code> </dd></dl>

<p>Implemented in <a class="el" href="classKNetwork_1_1KBufferedSocket.html#a5f864568db0f9b534e2b9547f47de598">KNetwork::KBufferedSocket</a>, <a class="el" href="classKNetwork_1_1KClientSocketBase.html#aa2de5120a63ebf16d05b272f291c07c7">KNetwork::KClientSocketBase</a>, <a class="el" href="classKNetwork_1_1KSocketDevice.html#a0a7c108c2a918d614425c84cfa4c6ce3">KNetwork::KSocketDevice</a>, and <a class="el" href="classKNetwork_1_1KSocksSocketDevice.html#a70161f23e83ec3ada61256af79f267bd">KNetwork::KSocksSocketDevice</a>.</p>

</div>
</div>
<a class="anchor" id="aa1c158f12589be4dbc64aaeb68a170fe"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::peerAddress" ref="aa1c158f12589be4dbc64aaeb68a170fe" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classKNetwork_1_1KSocketAddress.html">KSocketAddress</a> KNetwork::KActiveSocketBase::peerAddress </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return this socket's peer address, if we are connected. </p>
<p>If the address cannot be retrieved, the returned object will contain an invalid address. </p>

<p>Implemented in <a class="el" href="classKNetwork_1_1KClientSocketBase.html#ac2c0c3a244e2dcb83df8f2e955a0e602">KNetwork::KClientSocketBase</a>, <a class="el" href="classKNetwork_1_1KHttpProxySocketDevice.html#a2f1cdad527bfdb055a48106e5ef1bfd8">KNetwork::KHttpProxySocketDevice</a>, <a class="el" href="classKNetwork_1_1KSocketDevice.html#af8cb5bc075e2695a11ee6d1ec069c27e">KNetwork::KSocketDevice</a>, and <a class="el" href="classKNetwork_1_1KSocksSocketDevice.html#ae867959a5fefef4e7aa35b4d14c9bd93">KNetwork::KSocksSocketDevice</a>.</p>

</div>
</div>
<a class="anchor" id="a5d7cbef5e23b667e4b735dd63594da71"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::putch" ref="a5d7cbef5e23b667e4b735dd63594da71" args="(int ch)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int KActiveSocketBase::putch </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ch</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Writes one character to the socket. </p>
<p>Reimplementation from <a class="elRef" href="qiodevice.html">QIODevice</a>. See <a class="elRef" href="qiodevice.html#putch">QIODevice::putch</a> for more information. </p>

<p>Reimplemented from <a class="elRef" href="qiodevice.html#putch">QIODevice</a>.</p>

<p>Definition at line <a class="el" href="ksocketbase_8cpp_source.html#l00300">300</a> of file <a class="el" href="ksocketbase_8cpp_source.html">ksocketbase.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="ae26adda2fe7d1c78665b0c5e37974fee"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::readBlock" ref="ae26adda2fe7d1c78665b0c5e37974fee" args="(char *data, Q_ULONG maxlen, KSocketAddress &amp;from)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Q_LONG KNetwork::KActiveSocketBase::readBlock </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Q_ULONG&#160;</td>
          <td class="paramname"><em>maxlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classKNetwork_1_1KSocketAddress.html">KSocketAddress</a> &amp;&#160;</td>
          <td class="paramname"><em>from</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Receives data and the source address. </p>
<p>This call will read data in the socket and will also place the sender's address in <code>from</code> object.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>where to write the read data to </td></tr>
    <tr><td class="paramname">maxlen</td><td>the maximum number of bytes to read </td></tr>
    <tr><td class="paramname">from</td><td>the address of the sender will be stored here </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the actual number of bytes read </dd></dl>

<p>Implemented in <a class="el" href="classKNetwork_1_1KBufferedSocket.html#ab2fe6d7d35ce533d7b74710d7e142dee">KNetwork::KBufferedSocket</a>, <a class="el" href="classKNetwork_1_1KClientSocketBase.html#ae50e89178bf31fc3bf6698455c8cecef">KNetwork::KClientSocketBase</a>, <a class="el" href="classKNetwork_1_1KSocketDevice.html#a5a5967cedc6318d5c74cb953fdbb7e6b">KNetwork::KSocketDevice</a>, and <a class="el" href="classKNetwork_1_1KSocksSocketDevice.html#a03f193497265c6b77d709d06b60f20b5">KNetwork::KSocksSocketDevice</a>.</p>

</div>
</div>
<a class="anchor" id="a7b4b7304817fd573c77839982b5e3cd3"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::readBlock" ref="a7b4b7304817fd573c77839982b5e3cd3" args="(char *data, Q_ULONG len)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Q_LONG KNetwork::KActiveSocketBase::readBlock </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Q_ULONG&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reads data from the socket. </p>
<p>Reimplemented from <a class="elRef" href="qiodevice.html">QIODevice</a>. See <a class="elRef" href="qiodevice.html#readBlock">QIODevice::readBlock</a> for more information. </p>

<p>Reimplemented from <a class="elRef" href="qiodevice.html#readBlock">QIODevice</a>.</p>

<p>Implemented in <a class="el" href="classKNetwork_1_1KBufferedSocket.html#ae9d7b026ebb141c72540ab90258b8ff4">KNetwork::KBufferedSocket</a>, <a class="el" href="classKNetwork_1_1KClientSocketBase.html#a12568a3fddea910248a1fee9e6fea5a8">KNetwork::KClientSocketBase</a>, <a class="el" href="classKNetwork_1_1KSocketDevice.html#a21f19a087bc11c62b4ebf2f09378e610">KNetwork::KSocketDevice</a>, and <a class="el" href="classKNetwork_1_1KSocksSocketDevice.html#a7404e36004d3dc7625848521a0520826">KNetwork::KSocksSocketDevice</a>.</p>

</div>
</div>
<a class="anchor" id="a8ab660128508224c5124024b1a93248e"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::resetError" ref="a8ab660128508224c5124024b1a93248e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void KActiveSocketBase::resetError </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Resets the socket error code and the I/O Device's status. </p>

<p>Definition at line <a class="el" href="ksocketbase_8cpp_source.html#l00315">315</a> of file <a class="el" href="ksocketbase_8cpp_source.html">ksocketbase.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a3590741f0f0046536dac3a8ccb31f565"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::setError" ref="a3590741f0f0046536dac3a8ccb31f565" args="(int status, SocketError error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void KActiveSocketBase::setError </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>status</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classKNetwork_1_1KSocketBase.html#a983f608943115b037482f9647f7fb661">SocketError</a>&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the socket's error code and the I/O Device's status. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">status</td><td>the I/O Device status </td></tr>
    <tr><td class="paramname">error</td><td>the error code </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ksocketbase_8cpp_source.html#l00309">309</a> of file <a class="el" href="ksocketbase_8cpp_source.html">ksocketbase.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="acab45e62418c819f75f1f03a19520ab2"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::size" ref="acab45e62418c819f75f1f03a19520ab2" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="elRef" href="qiodevice.html#Offset">Offset</a> KNetwork::KActiveSocketBase::size </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This call is not supported on sockets. </p>
<p>Reimplemented from <a class="elRef" href="qiodevice.html">QIODevice</a>. This will always return 0. </p>

<p>Definition at line <a class="el" href="ksocketbase_8h_source.html#l00507">507</a> of file <a class="el" href="ksocketbase_8h_source.html">ksocketbase.h</a>.</p>

</div>
</div>
<a class="anchor" id="a383d573b0f319176aeeec096360be047"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::ungetch" ref="a383d573b0f319176aeeec096360be047" args="(int)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int KNetwork::KActiveSocketBase::ungetch </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This call is not supported on sockets. </p>
<p>Reimplemented from <a class="elRef" href="qiodevice.html">QIODevice</a>. This will always return -1; </p>

<p>Reimplemented from <a class="elRef" href="qiodevice.html#ungetch">QIODevice</a>.</p>

<p>Definition at line <a class="el" href="ksocketbase_8h_source.html#l00635">635</a> of file <a class="el" href="ksocketbase_8h_source.html">ksocketbase.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad89800cfae4755458955673247b9682d"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::waitForMore" ref="ad89800cfae4755458955673247b9682d" args="(int msecs, bool *timeout=0L)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Q_LONG KNetwork::KActiveSocketBase::waitForMore </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>msecs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool *&#160;</td>
          <td class="paramname"><em>timeout</em> = <code>0L</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Waits up to <code>msecs</code> for more data to be available on this socket. </p>
<p>If msecs is -1, this call will block indefinetely until more data is indeed available; if it's 0, this function returns immediately.</p>
<p>If <code>timeout</code> is not NULL, this function will set it to indicate if a timeout occurred.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of bytes available </dd></dl>

<p>Implemented in <a class="el" href="classKNetwork_1_1KBufferedSocket.html#a2f74aff6c39b66bcfb155d6f291d57cc">KNetwork::KBufferedSocket</a>, <a class="el" href="classKNetwork_1_1KClientSocketBase.html#ad59e1f656976f6df4d380b64d15a9659">KNetwork::KClientSocketBase</a>, and <a class="el" href="classKNetwork_1_1KSocketDevice.html#ac2e00f045b4b00566dd4b32b57d88bc2">KNetwork::KSocketDevice</a>.</p>

</div>
</div>
<a class="anchor" id="a972d6a9bbf5ad43aa82b71bef2a1b830"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::writeBlock" ref="a972d6a9bbf5ad43aa82b71bef2a1b830" args="(const char *data, Q_ULONG len, const KSocketAddress &amp;to)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Q_LONG KNetwork::KActiveSocketBase::writeBlock </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Q_ULONG&#160;</td>
          <td class="paramname"><em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classKNetwork_1_1KSocketAddress.html">KSocketAddress</a> &amp;&#160;</td>
          <td class="paramname"><em>to</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Writes the given data to the destination address. </p>
<p>Note that not all socket connections allow sending data to different addresses than the one the socket is connected to.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>the data to write </td></tr>
    <tr><td class="paramname">len</td><td>the length of the data </td></tr>
    <tr><td class="paramname">to</td><td>the address to send to </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of bytes actually sent </dd></dl>

<p>Implemented in <a class="el" href="classKNetwork_1_1KBufferedSocket.html#a8f56d40f0cc82b7eafb3280ea75d1e8a">KNetwork::KBufferedSocket</a>, <a class="el" href="classKNetwork_1_1KClientSocketBase.html#a7104aebfec8db817ce58520b200de6c7">KNetwork::KClientSocketBase</a>, <a class="el" href="classKNetwork_1_1KDatagramSocket.html#ac45576121b6f7a8dce759144fc33b153">KNetwork::KDatagramSocket</a>, <a class="el" href="classKNetwork_1_1KSocketDevice.html#ac4d0da0c7fe11c90d53fc0970aa850fa">KNetwork::KSocketDevice</a>, and <a class="el" href="classKNetwork_1_1KSocksSocketDevice.html#a6dd1b91e6d9bbf7c9d1bcd76cd97dc3a">KNetwork::KSocksSocketDevice</a>.</p>

</div>
</div>
<a class="anchor" id="a504bf1dcb57f6724017045882a647464"></a><!-- doxytag: member="KNetwork::KActiveSocketBase::writeBlock" ref="a504bf1dcb57f6724017045882a647464" args="(const char *data, Q_ULONG len)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Q_LONG KNetwork::KActiveSocketBase::writeBlock </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Q_ULONG&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Writes the given data to the socket. </p>
<p>Reimplemented from <a class="elRef" href="qiodevice.html">QIODevice</a>. See <a class="elRef" href="qiodevice.html#writeBlock">QIODevice::writeBlock</a> for more information. </p>

<p>Reimplemented from <a class="elRef" href="qiodevice.html#writeBlock">QIODevice</a>.</p>

<p>Implemented in <a class="el" href="classKNetwork_1_1KBufferedSocket.html#a2113810ad2ca4a2d1092f11a2125f2a1">KNetwork::KBufferedSocket</a>, <a class="el" href="classKNetwork_1_1KClientSocketBase.html#ac54af94a0c5b9e8e3fffd4b76cbe2dbd">KNetwork::KClientSocketBase</a>, <a class="el" href="classKNetwork_1_1KSocketDevice.html#a20ec5283e8815fe5e42a3b41bd5a3a69">KNetwork::KSocketDevice</a>, and <a class="el" href="classKNetwork_1_1KSocksSocketDevice.html#a3cc4123d3be620b5edb15fc98cd00ad2">KNetwork::KSocksSocketDevice</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="ksocketbase_8h_source.html">ksocketbase.h</a></li>
<li><a class="el" href="ksocketbase_8cpp_source.html">ksocketbase.cpp</a></li>
</ul>
</div>
    </div></div>


      </td>
  </tr>
  <tr>
    <td valign="top" id="leftmenu" width="25%">
      <a name="navigation"></a>
      <div class="menu_box"><h2>kdecore</h2>
<div class="nav_list">
<ul><li><a href="index.html">Main Page</a></li><li><a href="modules.html">Modules</a></li><li><a href="namespaces.html">Namespace List</a></li><li><a href="hierarchy.html">Class Hierarchy</a></li><li><a href="classes.html">Alphabetical List</a></li><li><a href="annotated.html">Class List</a></li><li><a href="files.html">File List</a></li><li><a href="namespacemembers.html">Namespace Members</a></li><li><a href="functions.html">Class Members</a></li><li><a href="pages.html">Related Pages</a></li></ul>
<!--
<h2>Class Picker</h2>
<div style="text-align: center;">
<form name="guideform">
<select name="guidelinks" style="width:100%;" onChange="window.location=document.guideform.guidelinks.options[document.guideform.guidelinks.selectedIndex].value">
<option value="annotated.html">-- Choose --</option>
  <option value="classKAboutData.html">kaboutdata</option>,  <option value="classKAboutPerson.html">kaboutperson</option>,  <option value="classKAboutTranslator.html">kabouttranslator</option>,  <option value="classKAccel.html">kaccel</option>,  <option value="classKAcceleratorManager.html">kacceleratormanager</option>,  <option value="classKAccelManagerAlgorithm.html">kaccelmanageralgorithm</option>,  <option value="classKAccelShortcutList.html">kaccelshortcutlist</option>,  <option value="classKAccelString.html">kaccelstring</option>,  <option value="classKAddressInfo.html">kaddressinfo</option>,  <option value="classKAppDCOPInterface.html">kappdcopinterface</option>,  <option value="classKApplication.html">kapplication</option>,  <option value="classKAsyncIO.html">kasyncio</option>,  <option value="classKAudioPlayer.html">kaudioplayer</option>,  <option value="classKBufferedIO.html">kbufferedio</option>,  <option value="classKCalendarSystem.html">kcalendarsystem</option>,  <option value="classKCalendarSystemFactory.html">kcalendarsystemfactory</option>,  <option value="classKCalendarSystemJalali.html">kcalendarsystemjalali</option>,  <option value="classKCatalogue.html">kcatalogue</option>,  <option value="classKCharMacroExpander.html">kcharmacroexpander</option>,  <option value="classKCharsets.html">kcharsets</option>,  <option value="classKClipboardSynchronizer.html">kclipboardsynchronizer</option>,  <option value="classKCmdLineArgs.html">kcmdlineargs</option>,  <option value="classKCodecs.html">kcodecs</option>,  <option value="classKCompletion.html">kcompletion</option>,  <option value="classKCompletionBase.html">kcompletionbase</option>,  <option value="classKCompletionMatches.html">kcompletionmatches</option>,  <option value="classKCompTreeNode.html">kcomptreenode</option>,  <option value="classKConfig.html">kconfig</option>,  <option value="classKConfigBackEnd.html">kconfigbackend</option>,  <option value="classKConfigBase.html">kconfigbase</option>,  <option value="classKConfigDialogManager.html">kconfigdialogmanager</option>,  <option value="classKConfigGroup.html">kconfiggroup</option>,  <option value="classKConfigGroupSaver.html">kconfiggroupsaver</option>,  <option value="classKConfigINIBackEnd.html">kconfiginibackend</option>,  <option value="classKConfigSkeleton.html">kconfigskeleton</option>,  <option value="classKConfigSkeleton_1_1ItemBool.html">kconfigskeleton::itembool</option>,  <option value="classKConfigSkeleton_1_1ItemColor.html">kconfigskeleton::itemcolor</option>,  <option value="classKConfigSkeleton_1_1ItemDateTime.html">kconfigskeleton::itemdatetime</option>,  <option value="classKConfigSkeleton_1_1ItemDouble.html">kconfigskeleton::itemdouble</option>,  <option value="classKConfigSkeleton_1_1ItemEnum.html">kconfigskeleton::itemenum</option>,  <option value="classKConfigSkeleton_1_1ItemFont.html">kconfigskeleton::itemfont</option>,  <option value="classKConfigSkeleton_1_1ItemInt.html">kconfigskeleton::itemint</option>,  <option value="classKConfigSkeleton_1_1ItemInt64.html">kconfigskeleton::itemint64</option>,  <option value="classKConfigSkeleton_1_1ItemIntList.html">kconfigskeleton::itemintlist</option>,  <option value="classKConfigSkeleton_1_1ItemLong.html">kconfigskeleton::itemlong</option>,  <option value="classKConfigSkeleton_1_1ItemPassword.html">kconfigskeleton::itempassword</option>,  <option value="classKConfigSkeleton_1_1ItemPath.html">kconfigskeleton::itempath</option>,  <option value="classKConfigSkeleton_1_1ItemPathList.html">kconfigskeleton::itempathlist</option>,  <option value="classKConfigSkeleton_1_1ItemPoint.html">kconfigskeleton::itempoint</option>,  <option value="classKConfigSkeleton_1_1ItemProperty.html">kconfigskeleton::itemproperty</option>,  <option value="classKConfigSkeleton_1_1ItemRect.html">kconfigskeleton::itemrect</option>,  <option value="classKConfigSkeleton_1_1ItemSize.html">kconfigskeleton::itemsize</option>,  <option value="classKConfigSkeleton_1_1ItemString.html">kconfigskeleton::itemstring</option>,  <option value="classKConfigSkeleton_1_1ItemStringList.html">kconfigskeleton::itemstringlist</option>,  <option value="classKConfigSkeleton_1_1ItemUInt.html">kconfigskeleton::itemuint</option>,  <option value="classKConfigSkeleton_1_1ItemUInt64.html">kconfigskeleton::itemuint64</option>,  <option value="classKConfigSkeleton_1_1ItemULong.html">kconfigskeleton::itemulong</option>,  <option value="classKConfigSkeletonItem.html">kconfigskeletonitem</option>,  <option value="classKCrash.html">kcrash</option>,  <option value="classKDCOPPropertyProxy.html">kdcoppropertyproxy</option>,  <option value="classKDebugDCOPIface.html">kdebugdcopiface</option>,  <option value="classKDesktopFile.html">kdesktopfile</option>,  <option value="classKExtendedSocket.html">kextendedsocket</option>,  <option value="classKGenericFactory.html">kgenericfactory</option>,  <option value="classKGenericFactory_3_01KTypeList_3_01Product_00_01ProductListTail_01_4_00_01KTypeList_3_01Pare1ed8d1e5a9847c99711cad3b12c7e96c.html">kgenericfactory< ktypelist< product, productlisttail >, ktypelist< pare1ed8d1e5a9847c99711cad3b12c7e96c</option>,  <option value="classKGenericFactory_3_01KTypeList_3_01Product_00_01ProductListTail_01_4_00_01KTypeList_3_01Paref6a00f76851e0daa2cb662bb8a41fc7f.html">kgenericfactory< ktypelist< product, productlisttail >, ktypelist< paref6a00f76851e0daa2cb662bb8a41fc7f</option>,  <option value="classKGenericFactory_3_01KTypeList_3_01Product_00_01ProductListTail_01_4_00_01QObject_01_4.html">kgenericfactory< ktypelist< product, productlisttail >, qobject ></option>,  <option value="classKGlobal.html">kglobal</option>,  <option value="classKGlobalAccel.html">kglobalaccel</option>,  <option value="classKGlobalSettings.html">kglobalsettings</option>,  <option value="classKIcon.html">kicon</option>,  <option value="classKIconEffect.html">kiconeffect</option>,  <option value="classKIconLoader.html">kiconloader</option>,  <option value="classKIconTheme.html">kicontheme</option>,  <option value="classKInetSocketAddress.html">kinetsocketaddress</option>,  <option value="classKInstance.html">kinstance</option>,  <option value="classKIOBufferBase.html">kiobufferbase</option>,  <option value="classKIPC.html">kipc</option>,  <option value="classKKey.html">kkey</option>,  <option value="classKKeyNative.html">kkeynative</option>,  <option value="classKKeySequence.html">kkeysequence</option>,  <option value="classKLibFactory.html">klibfactory</option>,  <option value="classKLibLoader.html">klibloader</option>,  <option value="classKLibrary.html">klibrary</option>,  <option value="classKLocale.html">klocale</option>,  <option value="classKLockFile.html">klockfile</option>,  <option value="classKMacroExpanderBase.html">kmacroexpanderbase</option>,  <option value="classKMD4.html">kmd4</option>,  <option value="classKMD5.html">kmd5</option>,  <option value="classKMimeSourceFactory.html">kmimesourcefactory</option>,  <option value="classKMountPoint.html">kmountpoint</option>,  <option value="classKMultipleDrag.html">kmultipledrag</option>,  <option value="classKNetwork_1_1KActiveSocketBase.html">knetwork::kactivesocketbase</option>,  <option value="classKNetwork_1_1KBufferedSocket.html">knetwork::kbufferedsocket</option>,  <option value="classKNetwork_1_1KClientSocketBase.html">knetwork::kclientsocketbase</option>,  <option value="classKNetwork_1_1KDatagramPacket.html">knetwork::kdatagrampacket</option>,  <option value="classKNetwork_1_1KDatagramSocket.html">knetwork::kdatagramsocket</option>,  <option value="classKNetwork_1_1KHttpProxySocketDevice.html">knetwork::khttpproxysocketdevice</option>,  <option value="classKNetwork_1_1KInetSocketAddress.html">knetwork::kinetsocketaddress</option>,  <option value="classKNetwork_1_1KIpAddress.html">knetwork::kipaddress</option>,  <option value="classKNetwork_1_1KMulticastSocket.html">knetwork::kmulticastsocket</option>,  <option value="classKNetwork_1_1KMulticastSocketImpl.html">knetwork::kmulticastsocketimpl</option>,  <option value="classKNetwork_1_1KNetworkInterface.html">knetwork::knetworkinterface</option>,  <option value="classKNetwork_1_1KPassiveSocketBase.html">knetwork::kpassivesocketbase</option>,  <option value="classKNetwork_1_1KResolver.html">knetwork::kresolver</option>,  <option value="classKNetwork_1_1KResolverEntry.html">knetwork::kresolverentry</option>,  <option value="classKNetwork_1_1KResolverResults.html">knetwork::kresolverresults</option>,  <option value="classKNetwork_1_1KResolverWorkerBase_1_1ResolverLocker.html">knetwork::kresolverworkerbase::resolverlocker</option>,  <option value="classKNetwork_1_1KReverseResolver.html">knetwork::kreverseresolver</option>,  <option value="classKNetwork_1_1KServerSocket.html">knetwork::kserversocket</option>,  <option value="classKNetwork_1_1KSocketAddress.html">knetwork::ksocketaddress</option>,  <option value="classKNetwork_1_1KSocketBase.html">knetwork::ksocketbase</option>,  <option value="classKNetwork_1_1KSocketDevice.html">knetwork::ksocketdevice</option>,  <option value="classKNetwork_1_1KSocketDeviceFactory.html">knetwork::ksocketdevicefactory</option>,  <option value="classKNetwork_1_1KSocksSocketDevice.html">knetwork::ksockssocketdevice</option>,  <option value="classKNetwork_1_1KStreamSocket.html">knetwork::kstreamsocket</option>,  <option value="classKNetwork_1_1KUnixSocketAddress.html">knetwork::kunixsocketaddress</option>,  <option value="classKNotifyClient_1_1Instance.html">knotifyclient::instance</option>,  <option value="classKPalette.html">kpalette</option>,  <option value="classKPixmapProvider.html">kpixmapprovider</option>,  <option value="classKPopupAccelManager.html">kpopupaccelmanager</option>,  <option value="classKProcess.html">kprocess</option>,  <option value="classKProcessController.html">kprocesscontroller</option>,  <option value="classKProcIO.html">kprocio</option>,  <option value="classKProtocolInfoFactory.html">kprotocolinfofactory</option>,  <option value="classKPty.html">kpty</option>,  <option value="classKRandomSequence.html">krandomsequence</option>,  <option value="classKRegExp.html">kregexp</option>,  <option value="classKRegExpPrivate.html">kregexpprivate</option>,  <option value="classKRFCDate.html">krfcdate</option>,  <option value="classKRootProp.html">krootprop</option>,  <option value="classKSaveFile.html">ksavefile</option>,  <option value="classKServerSocket.html">kserversocket</option>,  <option value="classKSessionManaged.html">ksessionmanaged</option>,  <option value="classKShared.html">kshared</option>,  <option value="classKSharedConfig.html">ksharedconfig</option>,  <option value="classKSharedPtr.html">ksharedptr</option>,  <option value="classKShellProcess.html">kshellprocess</option>,  <option value="classKShortcut.html">kshortcut</option>,  <option value="classKShortcutList.html">kshortcutlist</option>,  <option value="classKSimpleConfig.html">ksimpleconfig</option>,  <option value="classKSocket.html">ksocket</option>,  <option value="classKSocketAddress.html">ksocketaddress</option>,  <option value="classKSocks.html">ksocks</option>,  <option value="classKSortableItem.html">ksortableitem</option>,  <option value="classKSortableValueList.html">ksortablevaluelist</option>,  <option value="classKStandardDirs.html">kstandarddirs</option>,  <option value="classKStaticDeleter.html">kstaticdeleter</option>,  <option value="classKStaticDeleterBase.html">kstaticdeleterbase</option>,  <option value="classKStdAccel_1_1ShortcutList.html">kstdaccel::shortcutlist</option>,  <option value="classKStringHandler.html">kstringhandler</option>,  <option value="classKSycocaEntry.html">ksycocaentry</option>,  <option value="classKSycocaFactoryList.html">ksycocafactorylist</option>,  <option value="classKTempDir.html">ktempdir</option>,  <option value="classKTempFile.html">ktempfile</option>,  <option value="classKTimezone.html">ktimezone</option>,  <option value="classKTimezoneDetails.html">ktimezonedetails</option>,  <option value="classKTimezones.html">ktimezones</option>,  <option value="classKTimezoneSource.html">ktimezonesource</option>,  <option value="classKUniqueApplication.html">kuniqueapplication</option>,  <option value="classKUnixSocketAddress.html">kunixsocketaddress</option>,  <option value="classKURL.html">kurl</option>,  <option value="classKURL_1_1List.html">kurl::list</option>,  <option value="classKURLDrag.html">kurldrag</option>,  <option value="classKUser.html">kuser</option>,  <option value="classKUserGroup.html">kusergroup</option>,  <option value="classKVMAllocator.html">kvmallocator</option>,  <option value="classKWin.html">kwin</option>,  <option value="classKWin_1_1WindowInfo.html">kwin::windowinfo</option>,  <option value="classKWinModule.html">kwinmodule</option>,  <option value="classKWordMacroExpander.html">kwordmacroexpander</option>,  <option value="classKXErrorHandler.html">kxerrorhandler</option>,  <option value="classKZoneAllocator.html">kzoneallocator</option>,  <option value="classNET.html">net</option>,
</select>
</form>
</div>
-->
</div></div>
<div class="menu_box"><h2>API Dox</h2>
<div class="nav_list">
<ul>
<li><a href="../../arts/html/index.html">arts</a></li><li><a href="../../dcop/html/index.html">dcop</a></li><li><a href="../../dnssd/html/index.html">dnssd</a></li><li><a href="../../interfaces/html/index.html">interfaces</a></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<a href="../../interfaces/kimproxy/interface/html/index.html">interface</a></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<a href="../../interfaces/kimproxy/library/html/index.html">library</a></li><li>&nbsp;&nbsp;<a href="../../interfaces/kspeech/html/index.html">kspeech</a></li><li>&nbsp;&nbsp;<a href="../../interfaces/ktexteditor/html/index.html">ktexteditor</a></li><li><a href="../../kabc/html/index.html">kabc</a></li><li><a href="../../kate/html/index.html">kate</a></li><li><a href="../../kcmshell/html/index.html">kcmshell</a></li><li><a href="../../kdecore/html/index.html">kdecore</a></li><li><a href="../../kded/html/index.html">kded</a></li><li><a href="../../kdefx/html/index.html">kdefx</a></li><li><a href="../../kdeprint/html/index.html">kdeprint</a></li><li><a href="../../kdesu/html/index.html">kdesu</a></li><li><a href="../../kdeui/html/index.html">kdeui</a></li><li><a href="../../kdoctools/html/index.html">kdoctools</a></li><li><a href="../../khtml/html/index.html">khtml</a></li><li><a href="../../kimgio/html/index.html">kimgio</a></li><li><a href="../../kinit/html/index.html">kinit</a></li><li><a href="../../kio/html/index.html">kio</a></li><li>&nbsp;&nbsp;<a href="../../kio/bookmarks/html/index.html">bookmarks</a></li><li>&nbsp;&nbsp;<a href="../../kio/httpfilter/html/index.html">httpfilter</a></li><li>&nbsp;&nbsp;<a href="../../kio/kfile/html/index.html">kfile</a></li><li>&nbsp;&nbsp;<a href="../../kio/kio/html/index.html">kio</a></li><li>&nbsp;&nbsp;<a href="../../kio/kioexec/html/index.html">kioexec</a></li><li>&nbsp;&nbsp;<a href="../../kio/kpasswdserver/html/index.html">kpasswdserver</a></li><li>&nbsp;&nbsp;<a href="../../kio/kssl/html/index.html">kssl</a></li><li><a href="../../kioslave/html/index.html">kioslave</a></li><li>&nbsp;&nbsp;<a href="../../kioslave/http/html/index.html">http</a></li><li><a href="../../kjs/html/index.html">kjs</a></li><li><a href="../../kmdi/html/index.html">kmdi</a></li><li>&nbsp;&nbsp;<a href="../../kmdi/kmdi/html/index.html">kmdi</a></li><li><a href="../../knewstuff/html/index.html">knewstuff</a></li><li><a href="../../kparts/html/index.html">kparts</a></li><li><a href="../../kresources/html/index.html">kresources</a></li><li><a href="../../kspell2/html/index.html">kspell2</a></li><li><a href="../../kunittest/html/index.html">kunittest</a></li><li><a href="../../kutils/html/index.html">kutils</a></li><li><a href="../../kwallet/html/index.html">kwallet</a></li><li><a href="../../libkmid/html/index.html">libkmid</a></li><li><a href="../../libkscreensaver/html/index.html">libkscreensaver</a></li>
</ul></div></div>


        </td>
</tr>
</table>

<span class="doNotDisplay">
  <a href="http://www.kde.org/" accesskey="8">KDE Home</a> |
  <a href="http://accessibility.kde.org/" accesskey="9">KDE Accessibility Home</a> |
  <a href="http://www.kde.org/media/accesskeys.php" accesskey="0">Description of Access Keys</a>
</span>


<div style="height: 8px"></div>

<div id="footer">
  <div id="footer_left">
    Maintained by <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;groo&#116;&#64;kde&#46;or&#x67;">Adriaan de Groot</a>
and
<a href="&#109;a&#105;&#108;&#116;&#111;&#58;w&#105;nter&#64;kde&#46;or&#x67">Allen Winter</a>.
<br/>
    KDE and K Desktop Environment are trademarks of <a href="http://www.kde.org/areas/kde-ev/" title="Homepage of the KDE non-profit Organization">KDE e.V.</a> |
    <a href="http://www.kde.org/contact/impressum.php">Legal</a>
  </div>
  <div id="footer_right"><img src="/media/images/footer_right.png" style="margin: 0px" alt="" /></div>
</div>

<!--
WARNING: DO NOT SEND MAIL TO THE FOLLOWING EMAIL ADDRESS! YOU WILL
BE BLOCKED INSTANTLY AND PERMANENTLY!
<a href="mailto:aaaatrap-425acc3b5374943f@kde.org">Block me</a>
WARNING END
-->

</body>
</html>