<HTML> <HEAD> <TITLE>class KSocket</TITLE> <META NAME="Generator" CONTENT="KDOC "> </HEAD> <BODY bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#000099" alink= "#ffffff"> <TABLE WIDTH="100%" BORDER="0"> <TR> <TD> <TABLE BORDER="0"> <TR><TD valign="top" align="left" cellspacing="10"> <h1>class KSocket</h1> </TD> <TD valign="top" align="right" colspan="1">a TCP/IP client socket. <small><A HREF="#longdesc">More...</A></small></TD></TR> </TABLE> <HR> <TABLE BORDER="0"> <TR><TH>Definition</TH><TD><code>#include <<A HREF="ksock_h.html">ksock.h</A>></code></TD></TR> <TR><TH>Inherits</TH><TD><A HREF="../../../../../../../../../usr/share/doc/qt-2.3.1/html/qobject.html">QObject</A> <small>(qt)</small> <small>[public ]</small></TD></TR> <TR><TH><A HREF="full-list-KSocket.html">List of all Methods</A></TH></TR> </TABLE> </TD> <TD align="right"><TABLE BORDER="0"><TR><TD><small><A HREF="index-long.html">Annotated List</A></small></TD></TR> <TR><TD><small><A HREF="header-list.html">Files</A></small></TD></TR> <TR><TD><small><A HREF="all-globals.html">Globals</A></small></TD></TR> <TR><TD><small><A HREF="hier.html">Hierarchy</A></small></TD></TR> <TR><TD><small><A HREF="index.html">Index</A></small></TD></TR> </TABLE></TD></TR></TABLE> <h4>Public Methods</h4><ul><LI> <b><A HREF="#ref1">KSocket</A></b> ( int _sock ) </LI> <LI> <b><A HREF="#ref2">KSocket</A></b> ( const char *_host, unsigned short int _port, int timeOut = 30) </LI> <LI> <b><A HREF="#ref3">KSocket</A></b> ( const char * _path ) </LI> <LI>virtual <b><A HREF="#ref4">~KSocket</A></b> () </LI> <LI>int <b><A HREF="#ref6">socket</A></b> () const </LI> <LI>void <b><A HREF="#ref7">enableRead</A></b> ( bool ) </LI> <LI>void <b><A HREF="#ref8">enableWrite</A></b> ( bool ) </LI> <LI>unsigned long <b><A HREF="#ref9">ipv4_addr</A></b> () </LI> </ul><h4>Public Slots</h4><ul><LI>void <b><A HREF="#ref13">slotWrite</A></b> ( int ) </LI> <LI>void <b><A HREF="#ref14">slotRead</A></b> ( int ) </LI> </ul><h4>Signals</h4><ul><LI>void <b><A HREF="#ref10">readEvent</A></b> ( <A HREF="KSocket.html">KSocket</A> * ) </LI> <LI>void <b><A HREF="#ref11">writeEvent</A></b> ( <A HREF="KSocket.html">KSocket</A> * ) </LI> <LI>void <b><A HREF="#ref12">closeEvent</A></b> ( <A HREF="KSocket.html">KSocket</A> * ) </LI> </ul><h4>Public Static Methods</h4><ul><LI>static bool <b><A HREF="#ref5">initSockaddr</A></b> (<A HREF="#ksockaddr_in">ksockaddr_in</A> *server_name, const char *hostname, unsigned short int port, int domain = PF_INET) </LI> </ul><h4>Protected Methods</h4><ul><LI>bool <b><A HREF="#ref15">connect</A></b> ( const <A HREF="../../../../../../../../../usr/share/doc/qt-2.3.1/html/qstring.html">QString</A>& _host, unsigned short int _port ) </LI> <LI>bool <b><A HREF="#ref16">connect</A></b> ( const char *_path ) </LI> <LI>bool <b><A HREF="#ref17">init_sockaddr</A></b> ( const <A HREF="../../../../../../../../../usr/share/doc/qt-2.3.1/html/qstring.html">QString</A>& hostname, unsigned short int port ) </LI> </ul><h4>Protected Members</h4><ul><LI>ksockaddr_in <b><A HREF="#ref18">server_name</A></b></LI> <LI>Forward <A HREF="#ref19">unix_addr</A> </LI> <LI>int <b><A HREF="#ref20">sock</A></b></LI> <LI>int <b><A HREF="#ref21">domain</A></b></LI> <LI>QSocketNotifier *<b><A HREF="#ref22">readNotifier</A></b></LI> <LI>QSocketNotifier *<b><A HREF="#ref23">writeNotifier</A></b></LI> </ul><HR><H2><A NAME="longdesc">Detailed Description</A></H2><p> A TCP/IP client socket. </p> <p> You can connect this socket to any Internet address. </p> <p> The socket gives you three signals: When ready for reading, ready for writing or if the connection is broken. Using <A HREF="KSocket.html#socket">socket</A>() you get a file descriptor which you can use with the usual UNIX function like write(..) or read(...). If you have already such a socket identifier you can construct a KSocket on this identifier. </p> <p> If <A HREF="KSocket.html#socket">socket</A>() delivers a value of -1 or less, the connection was not successful. </p> <p></p> <A NAME="KSocket"></A><A NAME="ref1"></A><table width="100%"><tr bgcolor="#eeeeee"><td> <strong>KSocket</strong> ( int _sock ) <br></td><td align="right"><h3><strong>KSocket</strong></h3></td></tr></table><p></p><p> Create a KSocket with the provided file descriptor. </p> <p><b>Parameters</b>:<TABLE BORDER="0" CELLPADDING="5"> <TR><TD align="left" valign="top"><i>_sock</i></TD><TD align="left" valign="top">The file descriptor to use. </TD></TR> </TABLE></P> <A NAME="KSocket"></A><A NAME="ref2"></A><table width="100%"><tr bgcolor="#eeeeee"><td> <strong>KSocket</strong> ( const char *_host, unsigned short int _port, int timeOut = 30) <br></td><td align="right"><h3><strong>KSocket</strong></h3></td></tr></table><p></p><p> Create a socket and connect to a host. </p> <p><b>Parameters</b>:<TABLE BORDER="0" CELLPADDING="5"> <TR><TD align="left" valign="top"><i>_host</i></TD><TD align="left" valign="top">The remote host to which to connect. </TD></TR> <TR><TD align="left" valign="top"><i>_port</i></TD><TD align="left" valign="top">The port on the remote host. </TD></TR> <TR><TD align="left" valign="top"><i>timeOut</i></TD><TD align="left" valign="top">The number of seconds waiting for connect (default 30). </TD></TR> </TABLE></P> <A NAME="KSocket"></A><A NAME="ref3"></A><table width="100%"><tr bgcolor="#eeeeee"><td> <strong>KSocket</strong> ( const char * _path ) <br></td><td align="right"><h3><strong>KSocket</strong></h3></td></tr></table><p></p><p> Connects to a UNIX domain socket. </p> <p><b>Parameters</b>:<TABLE BORDER="0" CELLPADDING="5"> <TR><TD align="left" valign="top"><i>_path</i></TD><TD align="left" valign="top">The filename of the socket. </TD></TR> </TABLE></P> <A NAME="~KSocket"></A><A NAME="ref4"></A><table width="100%"><tr bgcolor="#eeeeee"><td> <strong>~KSocket</strong> () <br></td><td align="right"><h3><strong>~KSocket</strong></h3></td></tr></table><p> <small>[virtual]</small></p><p> Destructor. Closes the socket if it is still open. </p> <A NAME="initSockaddr"></A><A NAME="ref5"></A><table width="100%"><tr bgcolor="#eeeeee"><td> bool <strong>initSockaddr</strong> (<A HREF="#ksockaddr_in">ksockaddr_in</A> *server_name, const char *hostname, unsigned short int port, int domain = PF_INET) <br></td><td align="right"><h3><strong>initSockaddr</strong></h3></td></tr></table><p> <small>[static]</small></p><p> A small wrapper around gethostbyname() and such. Don't use this in new programs. Use <A HREF="KExtendedSocket.html#lookup">KExtendedSocket::lookup</A> </p> <A NAME="socket"></A><A NAME="ref6"></A><table width="100%"><tr bgcolor="#eeeeee"><td>int <strong>socket</strong> () <br></td><td align="right"><h3><strong>socket</strong></h3></td></tr></table><p> <small>[const]</small></p><p> Returns a file descriptor for this socket. Returns -1 when an error occured. </p> <A NAME="enableRead"></A><A NAME="ref7"></A><table width="100%"><tr bgcolor="#eeeeee"><td>void <strong>enableRead</strong> ( bool ) <br></td><td align="right"><h3><strong>enableRead</strong></h3></td></tr></table><p></p><p> Enable the socket for reading. </p> <p> If you enable read mode, the socket will emit the signal <A HREF="KSocket.html#readEvent">readEvent</A>() whenever there is something to read out of this socket. </p> <A NAME="enableWrite"></A><A NAME="ref8"></A><table width="100%"><tr bgcolor="#eeeeee"><td>void <strong>enableWrite</strong> ( bool ) <br></td><td align="right"><h3><strong>enableWrite</strong></h3></td></tr></table><p></p><p> Enable the socket for writing. </p> <p> If you enable write mode, the socket will emit the signal <A HREF="KSocket.html#writeEvent">writeEvent</A>() whenever the socket is ready for writing. </p> <p> Warning: If you forget to call enableWrite(false) when you are not ready to send data, you will get lots of writeEvent() signals, in the order of thousands a second ! </p> <A NAME="ipv4_addr"></A><A NAME="ref9"></A><table width="100%"><tr bgcolor="#eeeeee"><td>unsigned long <strong>ipv4_addr</strong> () <br></td><td align="right"><h3><strong>ipv4_addr</strong></h3></td></tr></table><p></p><p> Return address. This function is dumb. Don't ever use it if you need the peer address of this socket, use <A HREF="KExtendedSocket.html#peerAddress">KExtendedSocket::peerAddress</A>(int) instead </p> <A NAME="readEvent"></A><A NAME="ref10"></A><table width="100%"><tr bgcolor="#eeeeee"><td>void <strong>readEvent</strong> ( <A HREF="KSocket.html">KSocket</A> * ) <br></td><td align="right"><h3><strong>readEvent</strong></h3></td></tr></table><p> <small>[signal]</small></p><p> Data has arrived for reading. </p> <p> This signal will only be raised if <A HREF="KSocket.html#enableRead">enableRead</A>( <code>true</code> ) was called first. </p> <A NAME="writeEvent"></A><A NAME="ref11"></A><table width="100%"><tr bgcolor="#eeeeee"><td>void <strong>writeEvent</strong> ( <A HREF="KSocket.html">KSocket</A> * ) <br></td><td align="right"><h3><strong>writeEvent</strong></h3></td></tr></table><p> <small>[signal]</small></p><p> Socket is ready for writing. </p> <p> This signal will only be raised if <A HREF="KSocket.html#enableWrite">enableWrite</A>( <code>true</code> ) was called first. </p> <p> Warning: If you forget to call enableWrite(false) when you are not ready to send data, you will get lots of writeEvent() signals, in the order of thousands a second ! </p> <A NAME="closeEvent"></A><A NAME="ref12"></A><table width="100%"><tr bgcolor="#eeeeee"><td>void <strong>closeEvent</strong> ( <A HREF="KSocket.html">KSocket</A> * ) <br></td><td align="right"><h3><strong>closeEvent</strong></h3></td></tr></table><p> <small>[signal]</small></p><p> Raised when the connection is broken. </p> <A NAME="slotWrite"></A><A NAME="ref13"></A><table width="100%"><tr bgcolor="#eeeeee"><td>void <strong>slotWrite</strong> ( int ) <br></td><td align="right"><h3><strong>slotWrite</strong></h3></td></tr></table><p> <small>[slot]</small></p><p> Connected to the writeNotifier. </p> <p> Called when the socket is ready for writing. </p> <A NAME="slotRead"></A><A NAME="ref14"></A><table width="100%"><tr bgcolor="#eeeeee"><td>void <strong>slotRead</strong> ( int ) <br></td><td align="right"><h3><strong>slotRead</strong></h3></td></tr></table><p> <small>[slot]</small></p><p> Connected to the readNotifier. </p> <p> Called when the socket is ready for reading. </p> <A NAME="connect"></A><A NAME="ref15"></A><table width="100%"><tr bgcolor="#eeeeee"><td>bool <strong>connect</strong> ( const <A HREF="../../../../../../../../../usr/share/doc/qt-2.3.1/html/qstring.html">QString</A>& _host, unsigned short int _port ) <br></td><td align="right"><h3><strong>connect</strong></h3></td></tr></table><p> <small>[protected]</small></p><p>Reimplemented from <A HREF="../../../../../../../../../usr/share/doc/qt-2.3.1/html/qobject.html#c2d209">QObject</A>.</p> <A NAME="connect"></A><A NAME="ref16"></A><table width="100%"><tr bgcolor="#eeeeee"><td>bool <strong>connect</strong> ( const char *_path ) <br></td><td align="right"><h3><strong>connect</strong></h3></td></tr></table><p> <small>[protected]</small></p><p>Reimplemented from <A HREF="../../../../../../../../../usr/share/doc/qt-2.3.1/html/qobject.html#c2d209">QObject</A>.</p> <A NAME="init_sockaddr"></A><A NAME="ref17"></A><table width="100%"><tr bgcolor="#eeeeee"><td>bool <strong>init_sockaddr</strong> ( const <A HREF="../../../../../../../../../usr/share/doc/qt-2.3.1/html/qstring.html">QString</A>& hostname, unsigned short int port ) <br></td><td align="right"><h3><strong>init_sockaddr</strong></h3></td></tr></table><p> <small>[protected]</small></p><A NAME="server_name"></A><A NAME="ref18"></A><table width="100%"><tr bgcolor="#eeeeee"><td><A HREF="#ksockaddr_in">ksockaddr_in</A> <strong>server_name</strong> </td><td align="right"><h3><strong>server_name</strong></h3></td></tr></table><p> <small>[protected]</small></p><A NAME="sock"></A><A NAME="ref20"></A><table width="100%"><tr bgcolor="#eeeeee"><td>int <strong>sock</strong> </td><td align="right"><h3><strong>sock</strong></h3></td></tr></table><p> <small>[protected]</small></p><A NAME="domain"></A><A NAME="ref21"></A><table width="100%"><tr bgcolor="#eeeeee"><td>int <strong>domain</strong> </td><td align="right"><h3><strong>domain</strong></h3></td></tr></table><p> <small>[protected]</small></p><A NAME="readNotifier"></A><A NAME="ref22"></A><table width="100%"><tr bgcolor="#eeeeee"><td><A HREF="../../../../../../../../../usr/share/doc/qt-2.3.1/html/qsocketnotifier.html">QSocketNotifier</A> * <strong>readNotifier</strong> </td><td align="right"><h3><strong>readNotifier</strong></h3></td></tr></table><p> <small>[protected]</small></p><A NAME="writeNotifier"></A><A NAME="ref23"></A><table width="100%"><tr bgcolor="#eeeeee"><td><A HREF="../../../../../../../../../usr/share/doc/qt-2.3.1/html/qsocketnotifier.html">QSocketNotifier</A> * <strong>writeNotifier</strong> </td><td align="right"><h3><strong>writeNotifier</strong></h3></td></tr></table><p> <small>[protected]</small></p><HR><UL><LI><i>Version</i>: $Id: ksock.h,v 1.45 2001/03/23 01:48:31 thiago Exp $ </LI><LI><i>Author</i>: Torben Weis <weis@uni-frankfurt.de> </LI><LI><i>Generated</i>: qateam on updates.mandrakesoft.com on Mon Dec 30 16:08:56 2002, using kdoc 2.0a53.</LI></UL></BODY></HTML>