• Skip to content
  • Skip to link menu
KDE 4.6 API Reference
  • KDE API Reference
  • kdelibs
  • KDE Home
  • Contact Us
 

KDECore

  • KNetwork
  • KStreamSocket
Signals | Public Member Functions

KNetwork::KStreamSocket Class Reference

Simple stream socket. More...

#include <k3streamsocket.h>

Inheritance diagram for KNetwork::KStreamSocket:
Inheritance graph
[legend]

List of all members.

Signals

void timedOut ()

Public Member Functions

 KStreamSocket (const QString &node=QString(), const QString &service=QString(), QObject *parent=0L)
virtual ~KStreamSocket ()
virtual bool bind (const QString &node=QString(), const QString &service=QString())
virtual bool bind (const KResolverEntry &entry)
virtual bool connect (const KResolverEntry &entry, OpenMode mode=ReadWrite)
virtual bool connect (const QString &node=QString(), const QString &service=QString(), OpenMode mode=ReadWrite)
int remainingTimeout () const
void setTimeout (int msecs)
int timeout () const

Detailed Description

Simple stream socket.

This class provides functionality to creating unbuffered, stream sockets. In the case of Internet (IP) sockets, this class creates and uses TCP/IP sockets.

Objects of this class start, by default, on non-blocking mode. Call setBlocking if you wish to change that.

KStreamSocket objects are thread-safe and can be used in auxiliary threads (i.e., not the thread in which the Qt event loop runs in). Note that KBufferedSocket cannot be used reliably in an auxiliary thread.

Sample usage:

   QByteArray httpGet(const QString& hostname)
   {
     KStreamSocket socket(hostname, "http");
     if (!socket.connect())
       return QByteArray();
     QByteArray data = socket.readAll();
     return data;
   }

Here's another sample, showing asynchronous operation:

  DataRetriever::DataRetriever(const QString& hostname, const QString& port)
    : socket(hostname, port)
  {
    // connect signals to our slots
    QObject::connect(&socket, SIGNAL(connected(const KNetwork::KResolverEntry&)),
                     this, SLOT(slotSocketConnected()));
    QObject::connect(&socket, SIGNAL(gotError(int)),
                     this, SLOT(slotSocketError(int)));
    QObject::connect(&socket, SIGNAL(readyRead()),
                     this, SLOT(slotSocketReadyToRead()));
    QObject::connect(&socket, SIGNAL(readyWrite()),
                     this, SLOT(slotSocketReadyToWrite()));

    // set non-blocking mode in order to work asynchronously
    socket.setBlocking(false);

    // turn on signal emission
    socket.enableRead(true);
    socket.enableWrite(true);

    // start connecting
    socket.connect();
  }
See also:
KNetwork::KBufferedSocket, KNetwork::KServerSocket
Author:
Thiago Macieira <thiago@kde.org>
Version:
0.9
Deprecated:
Use KSocketFactory or KLocalSocket instead

Definition at line 98 of file k3streamsocket.h.


Constructor & Destructor Documentation

KStreamSocket::KStreamSocket ( const QString &  node = QString(),
const QString &  service = QString(),
QObject *  parent = 0L 
) [explicit]

Default constructor.

Parameters:
nodedestination host
servicedestination service to connect to
parentthe parent QObject object

Definition at line 55 of file k3streamsocket.cpp.

KStreamSocket::~KStreamSocket ( ) [virtual]

Destructor.

This closes the socket.

Definition at line 69 of file k3streamsocket.cpp.


Member Function Documentation

bool KStreamSocket::bind ( const QString &  node = QString(),
const QString &  service = QString() 
) [virtual]

Binds this socket to the given nodename and service, or use the default ones if none are given.

In order to bind to a service and allow the operating system to choose the interface, set node to QString().

Reimplemented from KClientSocketBase.

Upon successful binding, the bound() signal will be emitted. If an error is found, the gotError() signal will be emitted.

Note:
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 connect()). They only set the values for future reference.

This function returns true on success.

Parameters:
nodethe nodename
servicethe service

Implements KNetwork::KClientSocketBase.

Definition at line 98 of file k3streamsocket.cpp.

bool KStreamSocket::bind ( const KResolverEntry &  entry) [virtual]

Reimplemented from KClientSocketBase.

Connect this socket to this specific address.

Unlike bind(const QString&, const QString&) above, this function really does bind the socket. No lookup is performed. The bound() signal will be emitted.

Reimplemented from KNetwork::KClientSocketBase.

Definition at line 110 of file k3streamsocket.cpp.

bool KStreamSocket::connect ( const KResolverEntry &  entry,
OpenMode  mode = ReadWrite 
) [virtual]

Unshadowing from KClientSocketBase.

Reimplemented from KNetwork::KClientSocketBase.

Definition at line 204 of file k3streamsocket.cpp.

bool KStreamSocket::connect ( const QString &  node = QString(),
const QString &  service = QString(),
OpenMode  mode = ReadWrite 
) [virtual]

Reimplemented from KClientSocketBase.

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).

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.

Upon successfully connecting, the connected() signal will be emitted. If an error is found, the gotError() signal will be emitted.

This function also implements timeout handling.

Parameters:
nodethe remote node to connect to
servicethe service on the remote node to connect to
modemode to operate this socket in

Implements KNetwork::KClientSocketBase.

Definition at line 115 of file k3streamsocket.cpp.

int KStreamSocket::remainingTimeout ( ) const

Retrieves the remaining timeout time (in milliseconds).

This value equals timeout() if there's no connection in progress.

Definition at line 80 of file k3streamsocket.cpp.

void KStreamSocket::setTimeout ( int  msecs)

Sets the timeout value.

Setting this value while a connection attempt is in progress will reset the timer.

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.

Parameters:
msecsthe timeout value in milliseconds

Definition at line 90 of file k3streamsocket.cpp.

void KNetwork::KStreamSocket::timedOut ( ) [signal]

This signal is emitted when a connection timeout occurs.

int KStreamSocket::timeout ( ) const

Retrieves the timeout value (in milliseconds).

Definition at line 75 of file k3streamsocket.cpp.


The documentation for this class was generated from the following files:
  • k3streamsocket.h
  • k3streamsocket.cpp

KDECore

Skip menu "KDECore"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

kdelibs

Skip menu "kdelibs"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • Kate
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Generated for kdelibs by doxygen 1.7.3
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal