Sophie

Sophie

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

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::KStreamSocket 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_1KStreamSocket.html">KStreamSocket</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#signals">Signals</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#friends">Friends</a>  </div>
  <div class="headertitle">
<div class="title">KNetwork::KStreamSocket Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="KNetwork::KStreamSocket" --><!-- doxytag: inherits="KNetwork::KClientSocketBase" -->
<p>Simple stream socket.  
 <a href="classKNetwork_1_1KStreamSocket.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="kstreamsocket_8h_source.html">kstreamsocket.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for KNetwork::KStreamSocket:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classKNetwork_1_1KStreamSocket.png" usemap="#KNetwork::KStreamSocket_map" alt=""/>
  <map id="KNetwork::KStreamSocket_map" name="KNetwork::KStreamSocket_map">
<area href="classKNetwork_1_1KClientSocketBase.html" title="Abstract client socket class." alt="KNetwork::KClientSocketBase" shape="rect" coords="96,112,278,136"/>
<area href="qobject.html" alt="QObject" shape="rect" coords="0,56,182,80"/>
<area href="classKNetwork_1_1KActiveSocketBase.html" title="Abstract class for active sockets." alt="KNetwork::KActiveSocketBase" shape="rect" coords="192,56,374,80"/>
<area href="qiodevice.html" alt="QIODevice" shape="rect" coords="96,0,278,24"/>
<area href="classKNetwork_1_1KSocketBase.html" title="Basic socket functionality." alt="KNetwork::KSocketBase" shape="rect" coords="288,0,470,24"/>
<area href="classKNetwork_1_1KBufferedSocket.html" title="Buffered stream sockets." alt="KNetwork::KBufferedSocket" shape="rect" coords="96,224,278,248"/>
</map>
 </div></div>

<p><a href="classKNetwork_1_1KStreamSocket-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="signals"></a>
Signals</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_1KStreamSocket.html#acb9ae781feb43c789202c219427b1e04">timedOut</a> ()</td></tr>
<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_1KStreamSocket.html#a6874c16ff2b723d7b0c080cd02b9309a">KStreamSocket</a> (const <a class="elRef" href="qstring.html">QString</a> &amp;node=QString::null, const <a class="elRef" href="qstring.html">QString</a> &amp;service=QString::null, <a class="elRef" href="qobject.html">QObject</a> *<a class="elRef" href="qobject.html#parent">parent</a>=0L, const char *name=0L)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KStreamSocket.html#a94f9f67182ae0a145cdcdafcacd59541">~KStreamSocket</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KStreamSocket.html#a512f95b7c4ef5e4f006312a39543849e">timeout</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KStreamSocket.html#adf28a588a4a4a75f00832f2739d26cf4">remainingTimeout</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KStreamSocket.html#a555183d21dc895b770c0d392747e9a60">setTimeout</a> (int msecs)</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_1KStreamSocket.html#a22904420eaf8e186dc90d06b2a387781">bind</a> (const <a class="elRef" href="qstring.html">QString</a> &amp;node=QString::null, const <a class="elRef" href="qstring.html">QString</a> &amp;service=QString::null)</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_1KStreamSocket.html#a918ccf9ad3634acb27428f5eb34fe8c9">bind</a> (const <a class="el" href="classKNetwork_1_1KResolverEntry.html">KResolverEntry</a> &amp;entry)</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_1KStreamSocket.html#a2f7a1ee6ab790d3c4271b0056738e9fd">connect</a> (const <a class="elRef" href="qstring.html">QString</a> &amp;node=QString::null, const <a class="elRef" href="qstring.html">QString</a> &amp;service=QString::null)</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_1KStreamSocket.html#a35c5db369c7190cb338585f1995b264e">connect</a> (const <a class="el" href="classKNetwork_1_1KResolverEntry.html">KResolverEntry</a> &amp;entry)</td></tr>
<tr><td colspan="2"><h2><a name="friends"></a>
Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1f6510e4f4d0e56c067f34f8744fbe9a"></a><!-- doxytag: member="KNetwork::KStreamSocket::KServerSocket" ref="a1f6510e4f4d0e56c067f34f8744fbe9a" args="" -->
class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNetwork_1_1KStreamSocket.html#a1f6510e4f4d0e56c067f34f8744fbe9a">KServerSocket</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b3554e815417c707317f4f02cb55dfa"></a><!-- doxytag: member="KNetwork::KStreamSocket::KBufferedSocket" ref="a1b3554e815417c707317f4f02cb55dfa" args="" -->
class&#160;</td><td class="memItemRight" valign="bottom"><b>KBufferedSocket</b></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Simple stream socket. </p>
<p>This class provides functionality to creating unbuffered, stream sockets. In the case of Internet (IP) sockets, this class creates and uses TCP/IP sockets.</p>
<p>Objects of this class start, by default, on non-blocking mode. Call setBlocking if you wish to change that.</p>
<p><a class="el" href="classKNetwork_1_1KStreamSocket.html" title="Simple stream socket.">KStreamSocket</a> objects are thread-safe and can be used in auxiliary threads (i.e., not the thread in which the <a class="elRef" href="qt.html">Qt</a> event loop runs in). Note that <a class="el" href="classKNetwork_1_1KBufferedSocket.html" title="Buffered stream sockets.">KBufferedSocket</a> cannot be used reliably in an auxiliary thread.</p>
<p>Sample usage: </p>
<div class="fragment"><pre class="fragment">   <a class="codeRef" href="qbytearray.html">QByteArray</a> httpGet(<span class="keyword">const</span> <a class="codeRef" href="qstring.html">QString</a>&amp; hostname)
   {
     <a class="code" href="classKNetwork_1_1KStreamSocket.html#a6874c16ff2b723d7b0c080cd02b9309a" title="Default constructor.">KStreamSocket</a> socket(hostname, <span class="stringliteral">&quot;http&quot;</span>);
     <span class="keywordflow">if</span> (!socket.connect())
       <span class="keywordflow">return</span> <a class="codeRef" href="qbytearray.html">QByteArray</a>();
     <a class="codeRef" href="qbytearray.html">QByteArray</a> data = socket.readAll();
     <span class="keywordflow">return</span> data;
   }
</pre></div><p>Here's another sample, showing asynchronous operation: </p>
<div class="fragment"><pre class="fragment">  DataRetriever::DataRetriever(<span class="keyword">const</span> <a class="codeRef" href="qstring.html">QString</a>&amp; hostname, <span class="keyword">const</span> <a class="codeRef" href="qstring.html">QString</a>&amp; port)
    : socket(hostname, port)
  {
    <span class="comment">// connect signals to our slots</span>
    <a class="codeRef" href="qobject.html#connect">QObject::connect</a>(&amp;socket, SIGNAL(connected(<span class="keyword">const</span> KResolverEntry&amp;)),
                     <span class="keyword">this</span>, SLOT(slotSocketConnected()));
    <a class="codeRef" href="qobject.html#connect">QObject::connect</a>(&amp;socket, SIGNAL(gotError(<span class="keywordtype">int</span>)),
                     <span class="keyword">this</span>, SLOT(slotSocketError(<span class="keywordtype">int</span>)));
    <a class="codeRef" href="qobject.html#connect">QObject::connect</a>(&amp;socket, SIGNAL(readyRead()),
                     <span class="keyword">this</span>, SLOT(slotSocketReadyToRead()));
    <a class="codeRef" href="qobject.html#connect">QObject::connect</a>(&amp;socket, SIGNAL(readyWrite()),
                     <span class="keyword">this</span>, SLOT(slotSocketReadyToWrite()));

    <span class="comment">// set non-blocking mode in order to work asynchronously</span>
    socket.setBlocking(<span class="keyword">false</span>);

    <span class="comment">// turn on signal emission</span>
    socket.enableRead(<span class="keyword">true</span>);
    socket.enableWrite(<span class="keyword">true</span>);

    <span class="comment">// start connecting</span>
    socket.connect();
  }
</pre></div><dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classKNetwork_1_1KBufferedSocket.html" title="Buffered stream sockets.">KNetwork::KBufferedSocket</a>, <a class="el" href="classKNetwork_1_1KServerSocket.html" title="A server socket for accepting connections.">KNetwork::KServerSocket</a> </dd></dl>
<dl class="author"><dt><b>Author:</b></dt><dd>Thiago Macieira &lt;<a href="mailto:thiago@kde.org">thiago@kde.org</a>&gt; </dd></dl>

<p>Definition at line <a class="el" href="kstreamsocket_8h_source.html#l00097">97</a> of file <a class="el" href="kstreamsocket_8h_source.html">kstreamsocket.h</a>.</p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a6874c16ff2b723d7b0c080cd02b9309a"></a><!-- doxytag: member="KNetwork::KStreamSocket::KStreamSocket" ref="a6874c16ff2b723d7b0c080cd02b9309a" args="(const QString &amp;node=QString::null, const QString &amp;service=QString::null, QObject *parent=0L, const char *name=0L)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">KStreamSocket::KStreamSocket </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> &amp;&#160;</td>
          <td class="paramname"><em>node</em> = <code>QString::null</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> &amp;&#160;</td>
          <td class="paramname"><em>service</em> = <code>QString::null</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="elRef" href="qobject.html">QObject</a> *&#160;</td>
          <td class="paramname"><em>parent</em> = <code>0L</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em> = <code>0L</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Default constructor. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">node</td><td>destination host </td></tr>
    <tr><td class="paramname">service</td><td>destination service to connect to </td></tr>
    <tr><td class="paramname">parent</td><td>the parent <a class="elRef" href="qobject.html">QObject</a> object </td></tr>
    <tr><td class="paramname">name</td><td>name for this object </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="kstreamsocket_8cpp_source.html#l00053">53</a> of file <a class="el" href="kstreamsocket_8cpp_source.html">kstreamsocket.cpp</a>.</p>

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

<p>Destructor. </p>
<p>This closes the socket. </p>

<p>Definition at line <a class="el" href="kstreamsocket_8cpp_source.html#l00067">67</a> of file <a class="el" href="kstreamsocket_8cpp_source.html">kstreamsocket.cpp</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a22904420eaf8e186dc90d06b2a387781"></a><!-- doxytag: member="KNetwork::KStreamSocket::bind" ref="a22904420eaf8e186dc90d06b2a387781" args="(const QString &amp;node=QString::null, const QString &amp;service=QString::null)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool KStreamSocket::bind </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> &amp;&#160;</td>
          <td class="paramname"><em>node</em> = <code>QString::null</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> &amp;&#160;</td>
          <td class="paramname"><em>service</em> = <code>QString::null</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Binds this socket to the given nodename and service, or use the default ones if none are given. </p>
<p>In order to bind to a service and allow the operating system to choose the interface, set <code>node</code> to QString::null.</p>
<p>Reimplemented from <a class="el" href="classKNetwork_1_1KClientSocketBase.html" title="Abstract client socket class.">KClientSocketBase</a>.</p>
<p>Upon successful binding, the <a class="el" href="classKNetwork_1_1KClientSocketBase.html#a89291e32d8b852ebae384c77d5c3d18a">bound</a> signal will be emitted. If an error is found, the <a class="el" href="classKNetwork_1_1KClientSocketBase.html#aa484bdf0e485b189d03924f0c01ffdf5">gotError</a> signal will be emitted.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>Due to the internals of the name lookup and binding mechanism, some (if not most) implementations of this function do not actually bind the socket until the connection is requested (see <a class="el" href="classKNetwork_1_1KStreamSocket.html#a2f7a1ee6ab790d3c4271b0056738e9fd">connect</a>). They only set the values for future reference.</dd></dl>
<p>This function returns true on success.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">node</td><td>the nodename </td></tr>
    <tr><td class="paramname">service</td><td>the service </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classKNetwork_1_1KClientSocketBase.html#a34317958f0e4c11201b997b389a47794">KNetwork::KClientSocketBase</a>.</p>

<p>Definition at line <a class="el" href="kstreamsocket_8cpp_source.html#l00096">96</a> of file <a class="el" href="kstreamsocket_8cpp_source.html">kstreamsocket.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a918ccf9ad3634acb27428f5eb34fe8c9"></a><!-- doxytag: member="KNetwork::KStreamSocket::bind" ref="a918ccf9ad3634acb27428f5eb34fe8c9" args="(const KResolverEntry &amp;entry)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool KNetwork::KStreamSocket::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>entry</em></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented from <a class="el" href="classKNetwork_1_1KClientSocketBase.html" title="Abstract client socket class.">KClientSocketBase</a>. </p>
<p>Connect this socket to this specific address.</p>
<p>Unlike <a class="el" href="classKNetwork_1_1KStreamSocket.html#a22904420eaf8e186dc90d06b2a387781">bind(const QString&amp;, const QString&amp;)</a> above, this function really does bind the socket. No lookup is performed. The <a class="el" href="classKNetwork_1_1KClientSocketBase.html#a89291e32d8b852ebae384c77d5c3d18a">bound</a> signal will be emitted. </p>

<p>Reimplemented from <a class="el" href="classKNetwork_1_1KClientSocketBase.html#a9aec53d1633d9fae4fa3651e9055f091">KNetwork::KClientSocketBase</a>.</p>

<p>Definition at line <a class="el" href="kstreamsocket_8h_source.html#l00175">175</a> of file <a class="el" href="kstreamsocket_8h_source.html">kstreamsocket.h</a>.</p>

</div>
</div>
<a class="anchor" id="a35c5db369c7190cb338585f1995b264e"></a><!-- doxytag: member="KNetwork::KStreamSocket::connect" ref="a35c5db369c7190cb338585f1995b264e" args="(const KResolverEntry &amp;entry)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool KStreamSocket::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>entry</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unshadowing from <a class="el" href="classKNetwork_1_1KClientSocketBase.html" title="Abstract client socket class.">KClientSocketBase</a>. </p>

<p>Reimplemented from <a class="el" href="classKNetwork_1_1KClientSocketBase.html#a7acafce0d219b075f66205a6445513ed">KNetwork::KClientSocketBase</a>.</p>

<p>Definition at line <a class="el" href="kstreamsocket_8cpp_source.html#l00192">192</a> of file <a class="el" href="kstreamsocket_8cpp_source.html">kstreamsocket.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a2f7a1ee6ab790d3c4271b0056738e9fd"></a><!-- doxytag: member="KNetwork::KStreamSocket::connect" ref="a2f7a1ee6ab790d3c4271b0056738e9fd" args="(const QString &amp;node=QString::null, const QString &amp;service=QString::null)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool KStreamSocket::connect </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> &amp;&#160;</td>
          <td class="paramname"><em>node</em> = <code>QString::null</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> &amp;&#160;</td>
          <td class="paramname"><em>service</em> = <code>QString::null</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented from <a class="el" href="classKNetwork_1_1KClientSocketBase.html" title="Abstract client socket class.">KClientSocketBase</a>. </p>
<p>Attempts to connect to the these hostname and service, or use the default ones if none are given. If a connection attempt is already in progress, check on its state and set the error status (NoError, meaning the connection is completed, or InProgress).</p>
<p>If the blocking mode for this object is on, this function will only return when all the resolved peer addresses have been tried or when a connection is established.</p>
<p>Upon successfully connecting, the <a class="el" href="classKNetwork_1_1KClientSocketBase.html#a031dcb4fffd6733cab7e36aa12fb75ad">connected</a> signal will be emitted. If an error is found, the <a class="el" href="classKNetwork_1_1KClientSocketBase.html#aa484bdf0e485b189d03924f0c01ffdf5">gotError</a> signal will be emitted.</p>
<p>This function also implements timeout handling.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">node</td><td>the remote node to connect to </td></tr>
    <tr><td class="paramname">service</td><td>the service on the remote node to connect to </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classKNetwork_1_1KClientSocketBase.html#a38e23303c1af30c361c595752c0acb9d">KNetwork::KClientSocketBase</a>.</p>

<p>Definition at line <a class="el" href="kstreamsocket_8cpp_source.html#l00108">108</a> of file <a class="el" href="kstreamsocket_8cpp_source.html">kstreamsocket.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="adf28a588a4a4a75f00832f2739d26cf4"></a><!-- doxytag: member="KNetwork::KStreamSocket::remainingTimeout" ref="adf28a588a4a4a75f00832f2739d26cf4" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int KStreamSocket::remainingTimeout </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieves the remaining timeout time (in milliseconds). </p>
<p>This value equals <a class="el" href="classKNetwork_1_1KStreamSocket.html#a512f95b7c4ef5e4f006312a39543849e">timeout()</a> if there's no connection in progress. </p>

<p>Definition at line <a class="el" href="kstreamsocket_8cpp_source.html#l00078">78</a> of file <a class="el" href="kstreamsocket_8cpp_source.html">kstreamsocket.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a555183d21dc895b770c0d392747e9a60"></a><!-- doxytag: member="KNetwork::KStreamSocket::setTimeout" ref="a555183d21dc895b770c0d392747e9a60" args="(int msecs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void KStreamSocket::setTimeout </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>msecs</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the timeout value. </p>
<p>Setting this value while a connection attempt is in progress will reset the timer.</p>
<p>Please note that the timeout value is valid for the connection attempt only. No other operations are timed against this value -- including the name lookup associated.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">msecs</td><td>the timeout value in milliseconds </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="kstreamsocket_8cpp_source.html#l00088">88</a> of file <a class="el" href="kstreamsocket_8cpp_source.html">kstreamsocket.cpp</a>.</p>

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

<p>This signal is emitted when a connection timeout occurs. </p>

</div>
</div>
<a class="anchor" id="a512f95b7c4ef5e4f006312a39543849e"></a><!-- doxytag: member="KNetwork::KStreamSocket::timeout" ref="a512f95b7c4ef5e4f006312a39543849e" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int KStreamSocket::timeout </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieves the timeout value (in milliseconds). </p>

<p>Definition at line <a class="el" href="kstreamsocket_8cpp_source.html#l00073">73</a> of file <a class="el" href="kstreamsocket_8cpp_source.html">kstreamsocket.cpp</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="kstreamsocket_8h_source.html">kstreamsocket.h</a></li>
<li><a class="el" href="kstreamsocket_8cpp_source.html">kstreamsocket.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>