IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Viadeo Twitter Facebook Share on Google+   
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QAbstractSocket

La classe QAbstractSocket fournit les fonctionnalit�s de base communes � tous les types de sockets. Plus d'informations...

 #include <QAbstractSocket>

H�ritage

H�rite de QIODevice.

H�ritage

H�rit� par QTcpSocket et QUdpSocket.

Note : toutes les fonctions de cette classe sont r�entrantes.

Description d�taill�e

La classe QAbstractSocket fournit les fonctionnalit�s de base communes � tous les types de sockets.

La classe QAbstractSocket est la base pour les classes QTcpSocket et QUdpSocket et contient toutes les fonctionnalit�s communes aux deux classes. Si vous avez besoin d'un socket, vous avez deux options :

TCP (Transmission Control Protocol) est un protocole de transport fiable bas� sur des flux et des connexions. UDP (User Datagram Protocol) est un protocole non fiable, bas� sur des datagrammes, sans connexion. En pratique, cela signifie que TCP est plus adapt� aux transmissions continues de donn�es, alors que le protocole UDP, plus l�ger, peut �tre utilis� lorsque la fiabilit� n'est pas importante.

Les fonctions de QAbstractSocket unifient la plupart des diff�rences entre les deux protocoles. Par exemple, bien que l'UDP soit sans connexion, la fonction connectToHost() �tablit une connexion virtuelle pour les sockets UDP, vous permettant d'utiliser QAbstractSocket plus ou moins de la m�me fa�on sans vous soucier du protocole sous-jacent. En interne, QAbstractSocket sauvegarde l'adresse et le port pass� � la fonction connectToHost() et les fonctions comme read() et write() utilisent ces valeurs.

� tout moment, QAbstractSocket poss�de un �tat (retourn� par la fonction state()). L'�tat initial est UnconnectedState. Apr�s l'appel � la fonction connectToHost(), le socket entre d'abord dans l'�tat HostLookupState. Si l'h�te est trouv�, QAbstractSocket entre dans l'�tat ConnectingState et envoie le signal hostFound(). Lorsque la connexion est �tablie, il entre dans l'�tat ConnectedState et envoie le signal connected(). � tout moment, si une erreur se produit, le signal error() est envoy�. Quel que soit le changement d'�tat, le signal stateChanged() est �mis. Par commodit�, la fonction isValid() retourne true si le socket est pr�t � lire ou �crire mais notez que l'�tat du socket doit �tre ConnectedState avant qu'une op�ration de lecture ou �criture puisse �tre effectu�e.

Vous pouvez lire ou �crire des donn�es avec les fonctions read() ou write() ou utiliser les fonctions de commodit� readLine() et readAll(). QAbstractSocket h�rite aussi ses fonctions getChar(), putChar() et ungetChar() de QIODevice, qui travaille octet par octet. Le signal bytesWritten() est envoy� lorsque les donn�es ont �t� �crites sur le socket (c'est-�-dire lorsque le client a lu les donn�es). Notez que Qt n'a pas de limite de taille de tampon d'�criture. Vous pouvez surveiller sa taille en �coutant ce signal.

Le signal readyRead() est envoy� chaque fois qu'un nouveau paquet de donn�es est arriv�. La fonction bytesAvailable() retourne alors le nombre d'octets disponibles � la lecture. Typiquement, vous allez connecter le signal readyRead() � un slot et y lire les donn�es disponibles. Si vous ne lisez pas toutes les donn�es en une fois, les non-lues resteront disponibles et les nouvelles donn�es entrantes seront ajout�es dans le tampon de lecture interne de QAbstractSocket. Pour limiter la taille du tampon de lecture, appelez la fonction setReadBufferSize().

Pour fermer le socket, appelez la fonction disconnectFromHost(). QAbstractSocket entre dans l'�tat QAbstractSocket::ClosingState. Apr�s que toutes les donn�es ont �t� �crites sur le socket, QAbstractSocket ferme le socket, entre dans l'�tat QAbstractSocket::ClosedState et envoie le signal disconnected(). Si vous souhaitez annuler la connexion imm�diatement, en supprimant toutes les donn�es en attente, appelez la fonction abort(). Si l'h�te distant ferme la connexion, QAbstractSocket enverra l'erreur (QAbstractSocket::RemoteHostClosedError), pendant laquelle le socket restera dans l'�tat ConnectedState puis enverra le signal disconnected().

Le port et l'adresse du correspondant connect� sont donn�s par les fonctions peerPort() et peerAddress(). La fonction peerName() retourne le nom de l'h�te, tel qu'il est pass� � la fonction connectToHost(). Les fonctions localPort() et localAddress() retournent le port et l'adresse du socket local.

QAbstractSocket fournit un ensemble de fonctions qui bloquent le thread appelant tant que certains signaux ne sont pas envoy�s. Ces fonctions peuvent �tre utilis�es pour impl�menter des sockets bloquants :

Voici un exemple :

     int numRead = 0, numReadTotal = 0;
     char buffer[50];
 
     forever {
         numRead  = socket.read(buffer, 50);
 
         // Travailler sur le tableau
 
         numReadTotal += numRead;
         if (numRead == 0 && !socket.waitForReadyRead())
             break;
     }

Si la fonction waitForReadyRead() retourne false, la connexion a �t� ferm�e ou une erreur s'est produite.

La programmation avec un socket bloquant est totalement diff�rente de la programmation avec les sockets non bloquants. Un socket bloquant ne n�cessite pas de boucle �v�nementielle et habituellement, aboutit � un code plus simple. Par contre, dans une application � interface utilisateur graphique, les sockets bloquants doivent �tre utilis�s seulement dans les threads non li�s � l'interface graphique afin d'�viter les blocages de l'interface utilisateur. Voir les exemples network/fortuneclient et network/blockingfortuneclient pour un aper�u des diff�rentes approches.

Note : nous d�courageons l'utilisation des fonctions bloquantes avec les signaux. Il faut choisir une seule des deux possibilit�s.

La classe QAbstractSocket peut �tre utilis�e avec les op�rateurs de flux (operator<<() et operator>>()) de QTextStream et QDataStream. Cependant, un point doit �tre pris en compte : vous devez vous assurer qu'il y a assez de donn�es disponibles avant d'essayer de lire avec operator>>().

Voir aussi QFtp, QNetworkAccessManager et QTcpServer.

Type

enum QAbstractSocket::NetworkLayerProtocol

Cette �num�ration d�crit les valeurs utilis�es pour le protocole de la couche r�seau dans Qt.

Constante Valeur Description
QAbstractSocket::IPv4Protocol   IPv4
QAbstractSocket::IPv6Protocol 1 IPv6
QAbstractSocket::UnknownNetworkLayerProtocol -1 Autre que IPv4 et IPv6

Voir aussi QHostAddress::protocol().

enum QAbstractSocket::SocketError

Cette �num�ration d�crit les erreurs de socket qui peuvent se produire.

Constante Valeur Description
QAbstractSocket::ConnectionRefusedError   La connexion a �t� refus�e par le correspondant (ou le d�lai est d�pass�).
QAbstractSocket::RemoteHostClosedError 1 Le socket distant a ferm� la connexion. Notez que le socket client (c'est-�-dire ce socket) se fermera apr�s que la notification de fermeture aura �t� envoy�e.
QAbstractSocket::HostNotFoundError 2 Le nom du socket local n'a pas �t� trouv�.
QAbstractSocket::SocketAccessError 3 L'op�ration sur le socket a �chou� car l'application n'a pas les privil�ges requis.
QAbstractSocket::SocketResourceError 4 Le syst�me local n'a pas assez de ressources (par exemple, il y a trop de sockets).
QAbstractSocket::SocketTimeoutError 5 L'op�ration sur le socket a pris trop de temps.
QAbstractSocket::DatagramTooLargeError 6 Le datagramme �tait plus long que la limite permise par le syst�me d'exploitation (qui peut �tre r�duite � 8192 octets).
QAbstractSocket::NetworkError 7 Une erreur de r�seau s'est produite (par exemple, le c�ble r�seau a �t� accidentellement d�branch�).
QAbstractSocket::AddressInUseError 8 L'adresse sp�cifi�e � la fonction QUdpSocket::bind() est d�j� utilis�e et a �t� d�finie comme exclusive.
QAbstractSocket::SocketAddressNotAvailableError 9 L'adresse sp�cifi�e � la fonction QUdpSocket::bind() n'appartient pas � l'h�te.
QAbstractSocket::UnsupportedSocketOperationError 10 L'op�ration demand�e sur le socket n'est pas g�r�e par le syst�me d'exploitation (par exemple, indisponibilit� du support IPv6).
QAbstractSocket::ProxyAuthenticationRequiredError 12 Le socket utilise un proxy et le proxy n�cessite une authentification.
QAbstractSocket::SslHandshakeFailedError 13 L'authentification SSL/TLS a �chou�, donc la connexion a �t� ferm�e (seulement utilis� dans QSslSocket)
QAbstractSocket::UnfinishedSocketOperationError 11 Utilis� seulement par QAbstractSocketEngine. La derni�re op�ration n'est pas encore termin�e (en cours en arri�re-plan).
QAbstractSocket::ProxyConnectionRefusedError 14 Impossible de contacter le serveur proxy car la connexion au serveur a �t� refus�e.
QAbstractSocket::ProxyConnectionClosedError 15 La connexion au serveur proxy a �t� ferm�e sans pr�avis (avant que la connexion au correspondant final ne soit �tablie).
QAbstractSocket::ProxyConnectionTimeoutError 16 La connexion au serveur proxy a d�pass� le d�lai ou le serveur proxy a arr�t� de r�pondre en phase d'authentification.
QAbstractSocket::ProxyNotFoundError 17 L'adresse du proxy d�finie avec la fonction setProxy() (ou le proxy de l'application) n'a pas �t� trouv�e.
QAbstractSocket::ProxyProtocolError 18 La n�gociation de connexion avec le serveur proxy a �chou� car la r�ponse du serveur proxy n'a pas �t� comprise.
QAbstractSocket::UnknownSocketError -1 Une erreur non d�finie s'est produite.

Voir aussi QAbstractSocket::error().

enum QAbstractSocket::SocketOption

Cette �num�ration repr�sente les options pouvant �tre d�finies sur le socket. Si n�cessaire, elles peuvent �tre d�finies apr�s la r�ception du signal connected() depuis le socket ou apr�s avoir re�u un nouveau socket depuis un QTcpServer.

Constante Valeur Description
QAbstractSocket::LowDelayOption   Essaie d'optimiser le socket pour la faible latence. Pour un QTcpSocket cela signifie l'activation de l'option TCP_NODELAY et la d�sactivation de l'algorithme de Nagle. D�finissez cette option � 1 pour l'activer.
QAbstractSocket::KeepAliveOption 1 D�finissez cette option � 1 pour activer l'option de socket SO_KEEPALIVE.

Cette �num�ration a �t� introduite ou modifi�e dans Qt 4.6.

Voir aussi QAbstractSocket::setSocketOption() et QAbstractSocket::socketOption().

enum QAbstractSocket::SocketState

Cette �num�ration d�crit les diff�rents �tats dans lesquels le socket peut �tre.

Constante Valeur Description
QAbstractSocket::UnconnectedState   Le socket n'est pas connect�.
QAbstractSocket::HostLookupState 1 Le socket effectue une recherche du nom d'h�te.
QAbstractSocket::ConnectingState 2 Le socket a commenc� l'�tablissement d'une connexion.
QAbstractSocket::ConnectedState 3 Une connexion est �tablie.
QAbstractSocket::BoundState 4 Le socket est li� � une adresse et un port (pour les serveurs).
QAbstractSocket::ClosingState 6 Le socket va se fermer (des donn�es peuvent toujours �tre en attente d'�criture).
QAbstractSocket::ListeningState 5 Seulement pour un usage interne.

Voir aussi QAbstractSocket::state().

enum QAbstractSocket::SocketType

Cette �num�ration d�crit le protocole de la couche de transport.

Constante Valeur Description
QAbstractSocket::TcpSocket   TCP
QAbstractSocket::UdpSocket 1 UDP
QAbstractSocket::UnknownSocketType -1 Autre que TCP et UDP

Voir aussi QAbstractSocket::socketType().

Fonctions membres

QAbstractSocket::QAbstractSocket ( SocketType socketType, QObject * parent )

Cr�er un nouveau socket abstrait de type socketType. L'argument parent est pass� au constructeur de QObject.

Voir aussi socketType(), QTcpSocket et QUdpSocket.

QAbstractSocket::~QAbstractSocket () [virtual]

D�truit le socket.

void QAbstractSocket::abort ()

Annule la connexion courante et r�initialise le socket. Contrairement � la fonction disconnectFromHost(), cette fonction ferme imm�diatement le socket, abandonnant toutes les donn�es en attente dans le tampon d'�criture.

Voir aussi disconnectFromHost() et close().

bool QAbstractSocket::atEnd () const [virtual]

R�impl�mentation de QIODevice::atEnd().

Retourne true si plus aucune donn�e n'est disponible � la lecture ; sinon retourne false.

Cette fonction est le plus souvent utilis�e lors de la lecture des donn�es dans une boucle. Par exemple :

  // Ce slot est connect� � QAbstractSocket::readyRead()
  void SocketClass::readyReadSlot()
  {
      while (!socket.atEnd()) {
          QByteArray data = socket.read(100);
          ....
      }
  }

Voir aussi bytesAvailable() et readyRead().

qint64 QAbstractSocket::bytesAvailable () const [virtual]

R�impl�mentation de QIODevice::bytesAvailable().

Retourne le nombre d'octets entrants pr�ts � �tre lus.

Voir aussi bytesToWrite() et read().

qint64 QAbstractSocket::bytesToWrite () const [virtual]

R�impl�mentation de QIODevice::bytesToWrite().

Retourne le nombre d'octets qui sont en attente d'�criture. Les octets sont �crits lorsque la boucle d'�v�nements reprend la main ou lorsque la fonction flush() est appel�e.

Voir aussi bytesAvailable() et flush().

bool QAbstractSocket::canReadLine () const [virtual]

R�impl�mentation de QIODevice::canReadLine().

Retoure true si une ligne de donn�es peut �tre lue � partir du socket ; sinon retourne false.

Voir aussi readLine().

void QAbstractSocket::close () [virtual]

R�impl�mentation de QIODevice::close().

Ferme le p�riph�rique d'entr�e/sortie pour le socket, d�connectant la connexion du socket avec l'h�te, fermant le socket et r�initialisant le nom, adresse, port et le descripteur sous-jacent.

Voir QIODevice::close() pour une description des actions effectu�es lorsqu'un p�riph�rique d'entr�e/sortie est ferm�.

Voir aussi abort().

void QAbstractSocket::connectToHost ( const QString & hostName, quint16 port, OpenMode openMode = ReadWrite )

Essaie de se connecter � hostName avec le port donn�.

Le socket est ouvert dans le mode openMode donn� et entre dans l'�tat HostLookupState, puis effectue une recherche du nom d'h�te hostName. Si la recherche aboutit, le signal hostFound() est envoy� et QAbstractSocket entre dans l'�tat ConnectingState. La classe essaie ensuite de se connecter � l'adresse ou aux adresses retourn�es par la recherche. Finalement, si la connexion est �tablie, QAbstractSocket entre dans l'�tat ConnectedState et envoie le signal connected().

� tout moment, le socket peut envoyer le signal error() pour notifier qu'une erreur s'est produite.

Le nom d'h�te hostName peut �tre une adresse IP sous la forme d'une cha�ne de caract�res (par exemple, « 43.195.83.32 ») ou un nom d'h�te (par exemple, « example.com »). QAbstractSocket effectuera une recherche seulement si n�cessaire. Le port est dans l'ordre d'octets natif.

Voir aussi state(), peerName(), peerAddress(), peerPort() et waitForConnected().

void QAbstractSocket::connectToHost ( const QHostAddress & address, quint16 port, OpenMode openMode = ReadWrite )

Il s'agit d'une fonction surcharg�e.

Essaie de cr�er une connexion sur l'adresse address avec le port donn�.

void QAbstractSocket::connectToHostImplementation ( const QString & hostName, quint16 port, OpenMode openMode = ReadWrite ) [protected slot]

Contient l'impl�mentation de connectToHost().

Essaie de cr�er une connexion � hostName avec le port port donn�. Le socket est ouvert dans le mode openMode donn�.

Cette fonction a �t� introduite dans Qt 4.1.

void QAbstractSocket::connected () [signal]

Ce signal est envoy� apr�s l'appel de la fonction connectToHost() et si une connexion a �t� �tablie.

Note : sur certains syst�mes d'exploitation le signal connected() peut �tre directement envoy� � partir de l'appel connectToHost() pour les connexions � l'h�te local.

Voir aussi connectToHost() et disconnected().

void QAbstractSocket::disconnectFromHost ()

Essaie de fermer le socket. Si des donn�es sont en attente d'�criture, le QAbstractSocket entrera dans l'�tat ClosingState et attendra jusqu'� ce que les donn�es soient toutes �crites. Pour finir, il entrera dans l'�tat UnconnectedState et enverra le signal disconnected().

Voir aussi connectToHost().

void QAbstractSocket::disconnectFromHostImplementation () [protected slot]

Contient l'impl�mentation de disconnectFromHost().

Cette fonction a �t� introduite dans Qt 4.1.

void QAbstractSocket::disconnected () [signal]

Ce signal est envoy� lorsque le socket a �t� d�connect�.

Attention : si vous avez besoin de d�truire le sender() de ce signal dans un slot qui lui est connect�, utilisez la fonction deleteLater().

Voir aussi connectToHost(), disconnectFromHost() et abort().

SocketError QAbstractSocket::error () const

Retourne le type de la derni�re erreur rencontr�e.

Voir aussi state() et errorString().

void QAbstractSocket::error ( QAbstractSocket::SocketError socketError ) [signal]

Ce signal est envoy� apr�s qu'une erreur s'est produite. Le param�tre socketError d�crit le type d'erreur rencontr�.

QAbstractSocket::SocketError n'est pas un m�tatype enregistr�, donc pour les connexions avec file d'attente (QueuedConnection), vous aurez besoin de l'enregistrer avec Q_DECLARE_METATYPE() et qRegisterMetaType().

Voir aussi error(), errorString() et Cr�er des types Qt personnalis�s.

bool QAbstractSocket::flush ()

Cette fonction �crit le plus de donn�e possibles depuis le tampon d'�criture vers le socket r�seau sous-jacent, sans blocage. Si des donn�es ont �t� �crites, cette fonction retourne true ; sinon elle renvoie false.

Appelez cette fonction si vous voulez que QAbstractSocket d�marre imm�diatement l'envoi des donn�es pr�sentes dans le tampon. Le nombre d'octets �crits avec succ�s d�pend du syst�me d'exploitation. Dans la plupart des cas, vous n'avez pas besoin d'appeler cette fonction, car QAbstractSocket d�marrera automatiquement l'envoi des donn�es d�s que l'ex�cution de la boucle d'�v�nements reprendra. En l'absence de boucle d'�v�nements, appelez la fonction waitForBytesWritten() � la place.

Voir aussi write() et waitForBytesWritten().

void QAbstractSocket::hostFound () [signal]

Ce signal est envoy� apr�s que la fonction connectToHost() a �t� appel�e et que la recherche d'h�te a r�ussi.

Note : depuis Qt 4.6.3, QAbstractSocket peut envoyer le signal hostFound() directement � partir de la fonction connectToHost() �tant donn� que le r�sultat DNS peut avoir �t� mis en cache.

Voir aussi connected().

bool QAbstractSocket::isSequential () const [virtual]

R�impl�mentation de QIODevice::isSequential().

bool QAbstractSocket::isValid () const

Retourne true si le socket est valide et pr�t � �tre utilis� ; sinon retourne false.

Note : l'�tat du socket doit �tre ConnectedState avant qu'une op�ration de lecture ou d'�criture ne puisse �tre effectu�e.

Voir aussi state().

QHostAddress QAbstractSocket::localAddress () const

Retourne l'adresse h�te du socket local si disponible ; sinon retourne QHostAddress::Null.

Il s'agit normalement de l'adresse IP principale de l'h�te mais cela peut �tre QHostAddress::LocalHost (127.0.0.1) pour les connexions � l'h�te local.

Voir aussi localPort(), peerAddress() et setLocalAddress().

quint16 QAbstractSocket::localPort () const

Retourne le num�ro de port h�te (dans l'ordre d'octets natif) du socket local si disponible ; sinon retourne 0.

Voir aussi localAddress(), peerPort() et setLocalPort().

QHostAddress QAbstractSocket::peerAddress () const

Retourne l'adresse du correspondant connect� si le socket est dans l'�tat ConnectedState ; sinon retourne QHostAddress::Null.

Voir aussi peerName(), peerPort(), localAddress() et setPeerAddress().

QString QAbstractSocket::peerName () const

Retourne le nom du correspondant tel que sp�cifi� � la fonction connectToHost() ou un QString vide si connectToHost() n'a pas �t� appel�.

Voir aussi peerAddress(), peerPort() et setPeerName().

quint16 QAbstractSocket::peerPort () const

Retourne le port du correspondant connect� si le socket est dans l'�tat ConnectedState ; sinon retourne 0.

Voir aussi peerAddress(), localPort() et setPeerPort().

QNetworkProxy QAbstractSocket::proxy () const

Retourne le proxy r�seau pour ce socket. On utilise QNetworkProxy::DefaultProxy par d�faut, ce qui signifie que ce socket r�cup�rera les param�tres de proxy par d�faut de l'application.

Cette fonction a �t� introduite dans Qt 4.1.

Voir aussi setProxy(), QNetworkProxy et QNetworkProxyFactory.

void QAbstractSocket::proxyAuthenticationRequired ( const QNetworkProxy & proxy, QAuthenticator * authenticator ) [signal]

Ce signal peut �tre envoy� lorsqu'un proxy n�cessitant une authentification est utilis�. L'objet authenticator peut �tre alors �tre renseign� avec les d�tails requis pour permettre l'authentification et continuer la connexion.

Note : il n'est pas possible d'utiliser une QueuedConnection pour se connecter � ce signal, �tant donn� que la connexion peut �chouer si l'authentificateur n'a pas �t� renseign� avec les nouvelles informations lors du retour du signal.

Cette fonction a �t� introduite dans Qt 4.3.

Voir aussi QAuthenticator et QNetworkProxy.

qint64 QAbstractSocket::readBufferSize () const

Retourne la taille du tampon interne de lecture. Cette limite repr�sente la quantit� de donn�es que le client peut recevoir avant un appel aux fonctions read() ou readAll().

Une taille de 0 (par d�faut) signifie que le tampon n'a pas de limite de taille, ce qui garantit de ne pas perdre de donn�es.

Voir aussi setReadBufferSize() et read().

qint64 QAbstractSocket::readData ( char * data, qint64 maxSize ) [virtual protected]

R�impl�mentation de QIODevice::readData().

qint64 QAbstractSocket::readLineData ( char * data, qint64 maxlen ) [virtual protected]

R�impl�mentation de QIODevice::readLineData().

void QAbstractSocket::setLocalAddress ( const QHostAddress & address ) [protected]

D�finit l'adresse du c�t� local de la connexion � address.

Vous pouvez appeler cette fonction dans une sous-classe de QAbstractSocket pour changer la valeur de retour de la fonction localAddress() apr�s qu'une connexion a �t� �tablie. Cette fonctionnalit� est habituellement utilis�e par les connexions proxy pour les param�tres de la connexion virtuelle.

Notez que cette fonction ne lie pas l'adresse locale du socket avant une connexion (par exemple, QUdpSocket::bind()).

Cette fonction a �t� introduite dans Qt 4.1.

Voir aussi localAddress(), setLocalPort() et setPeerAddress().

void QAbstractSocket::setLocalPort ( quint16 port ) [protected]

D�finit le port du c�t� local de la connexion � port.

Vous pouvez appeler cette fonction dans une sous-classe de QAbstractSocket pour changer la valeur de retour de la fonction localPort() apr�s qu'une connexion a �t� �tablie. Cette fonctionnalit� est habituellement utilis�e par les connexions proxy pour les param�tres de la connexion virtuelle.

Notez que cette fonction ne lie pas le port local du socket avant une connexion (par exemple, QUdpSocket::bind()).

Cette fonction a �t� introduite dans Qt 4.1.

Voir aussi localPort(), localAddress(), setLocalAddress() et setPeerPort().

void QAbstractSocket::setPeerAddress ( const QHostAddress & address ) [protected]

D�finit l'adresse du c�t� distant de la connexion � address.

Vous pouvez appeler cette fonction dans une sous-classe de QAbstractSocket pour changer la valeur de retour de la fonction peerAddress() apr�s qu'une connexion a �t� �tablie. Cette fonctionnalit� est habituellement utilis�e par les connexions proxy pour les param�tres de la connexion virtuelle.

Cette fonction a �t� introduite dans Qt 4.1.

Voir aussi peerAddress(), setPeerPort() et setLocalAddress().

void QAbstractSocket::setPeerName ( const QString & name ) [protected]

D�finit le nom d'h�te du correspondant distant � name.

Vous pouvez appeler cette fonction dans une sous-classe de QAbstractSocket pour changer la valeur de retour de la fonction peerName() apr�s qu'une connexion a �t� �tablie. Cette fonctionnalit� est habituellement utilis�e par les connexions proxy pour les param�tres de la connexion virtuelle.

Cette fonction a �t� introduite dans Qt 4.1.

Voir aussi peerName().

void QAbstractSocket::setPeerPort ( quint16 port ) [protected]

D�finit le port du c�t� du correspondant de la connexion � port.

Vous pouvez appeler cette fonction dans une sous-classe de QAbstractSocket pour changer la valeur de retour de la fonction peerPort() apr�s qu'une connexion a �t� �tablie. Cette fonctionnalit� est habituellement utilis�e par les connexions proxy pour les param�tres de la connexion virtuelle.

Cette fonction a �t� introduite dans Qt 4.1.

Voir aussi peerPort(), setPeerAddress() et setLocalPort().

void QAbstractSocket::setProxy ( const QNetworkProxy & networkProxy )

D�finit le proxy r�seau explicite pour ce socket � networkProxy.

Pour d�sactiver l'utilisation d'un proxy pour ce socket, utilisez le type de proxy QNetworkProxy::NoProxy :

 socket->setProxy(QNetworkProxy::NoProxy);

La valeur par d�faut pour le proxy est QNetworkProxy::DefaultProxy, ce qui signifie que le socket utilisera les param�tres de l'application : si un proxy est d�fini avec QNetworkProxy::setApplicationProxy, il l'utilisera ; sinon, si une fabrique est d�finie avec QNetworkProxyFactory::setApplicationProxyFactory, il appellera la fabrique avec le type QNetworkProxyQuery::TcpSocket.

Cette fonction a �t� introduite dans Qt 4.1.

Voir aussi proxy(), QNetworkProxy et QNetworkProxyFactory::queryProxy().

void QAbstractSocket::setReadBufferSize ( qint64 size )

D�finit la taille du tampon de lecture interne de QAbstractSocketsize octets.

Si la taille du tampon est limit�e � une certaine taille, QAbstractSocket ne stockera pas plus de donn�es que cette taille. L'exception est une taille de tampon de 0, qui signifie que le tampon de lecture est illimit� et que toutes les donn�es sont stock�es dans le tampon. C'est la valeur par d�faut.

Cette option est utile si vous voulez lire les donn�es � des moments pr�cis (par exemple, dans une application de streaming en temps r�el) ou si vous souhaitez prot�ger votre socket contre la r�ception d'une quantit� de donn�es trop importante pouvant provoquer le remplissage de la m�moire.

Seul QTcpSocket utilise le tampon interne de QAbstractSocket ; QUdpSocket n'utilise aucune mise en cache mais s'appuie plut�t sur la mise en cache implicite du syst�me d'exploitation. En cons�quence, l'appel de cette fonction sur un QUdpSocket n'a aucun effet.

Voir aussi readBufferSize() et read().

bool QAbstractSocket::setSocketDescriptor ( int socketDescriptor, SocketState socketState = ConnectedState, OpenMode openMode = ReadWrite )

Initialise QAbstractSocket avec le descripteur de socket natif socketDescriptor. Retourne true si socketDescriptor est accept� comme descripteur de socket valide ; sinon retourne false. Le socket est ouvert dans le mode sp�cifi� par openMode et entre dans l'�tat de socket sp�cifi� par socketState.

Note : il n'est pas possible d'initialiser deux sockets abstraits avec le m�me descripteur de socket natif.

Voir aussi socketDescriptor().

void QAbstractSocket::setSocketError ( SocketError socketError ) [protected]

D�finit le type de la derni�re erreur produite � socketError.

Voir aussi setSocketState() et setErrorString().

void QAbstractSocket::setSocketOption ( QAbstractSocket::SocketOption option, const QVariant & value )

D�finit l‹option donn�e � la valeur value.

Cette fonction a �t� introduite dans Qt 4.6.

Voir aussi socketOption().

void QAbstractSocket::setSocketState ( SocketState state ) [protected]

D�finit l'�tat du socket � state.

Voir aussi state().

int QAbstractSocket::socketDescriptor () const

Retourne le descripteur de socket natif de l'objet QAbstractSocket si disponible ; sinon retourne -1.

Si le socket utilise QNetworkProxy, le descripteur retourn� peut ne pas �tre utilisable avec les fonctions du socket natif.

Le descripteur de socket n'est pas disponible lorsque QAbstractSocket est dans l'�tat UnconnectedState.

Voir aussi setSocketDescriptor().

QVariant QAbstractSocket::socketOption ( QAbstractSocket::SocketOption option )

Retourne la valeur de l‹option.

Cette fonction a �t� introduite dans Qt 4.6.

Voir aussi setSocketOption().

SocketType QAbstractSocket::socketType () const

Retourne le type de socket (TCP, UDP ou autre).

Voir aussi QTcpSocket et QUdpSocket.

SocketState QAbstractSocket::state () const

Retourne l'�tat du socket.

Voir aussi error().

void QAbstractSocket::stateChanged ( QAbstractSocket::SocketState socketState ) [signal]

Ce signal est envoy� � chaque changement d'�tat de QAbstractSocket. Le param�tre socketState est le nouvel �tat.

QAbstractSocket::SocketError n'est pas un m�tatype enregistr�, donc pour les connexions avec file d'attente (QueuedConnection), vous aurez besoin de l'enregistrer avec Q_DECLARE_METATYPE() et qRegisterMetaType().

Voir aussi state() et Cr�er des types Qt personnalis�s.

bool QAbstractSocket::waitForBytesWritten ( int msecs = 30000 ) [virtual]

R�impl�mentation de QIODevice::waitForBytesWritten().

bool QAbstractSocket::waitForConnected ( int msecs = 30000 )

Attend la connexion du socket pendant msecs millisecondes. Si la connexion est �tablie, cette fonction retourne true ; sinon elle retourne false. Dans le cas o� la fonction retourne false, vous pouvez appeler la fonction error() pour conna�tre la cause de l'erreur.

L'exemple suivant attend une seconde que la connexion soit �tablie :

 socket->connectToHost("imap", 143);
 if (socket->waitForConnected(1000))
     qDebug("Connected!");

Si msecs est -1, la fonction attendra sans limite de temps.

Note : la fonction peut attendre un peu plus de msecs, selon le temps que prend une recherche d'h�te.

Note : les temps d'attente ne se cumulent pas en cas d'appels multiples � cette fonction. Si le d�lai d'attente est d�pass�, le processus de connexion sera annul�.

Voir aussi connectToHost() et connected().

bool QAbstractSocket::waitForDisconnected ( int msecs = 30000 )

Attend la d�connexion du socket pendant msecs millisecondes. Si la connexion a �t� d�connect�e, cette fonction retourne true ; sinon elle retourne false. Dans le cas o� la fonction retourne false, vous pouvez appeler la fonction error() pour conna�tre la cause de l'erreur.

L'exemple suivant attend une seconde que la connexion soit ferm�e :

 socket->disconnectFromHost();
     if (socket->state() == QAbstractSocket::UnconnectedState ||
         socket->waitForDisconnected(1000))
         qDebug("Disconnected!");

Si msecs est -1, la fonction attendra sans limite de temps.

Voir aussi disconnectFromHost() et close().

bool QAbstractSocket::waitForReadyRead ( int msecs = 30000 ) [virtual]

R�impl�mentation de QIODevice::waitForReadyRead().

Cette fonction attend que des donn�es soient disponibles en lecture et que le signal readyRead() soit envoy�. Le d�lai d'attente est de msecs millisecondes ; le d�lai par d�faut est de 30�000 millisecondes.

La fonction retourne true si le signal readyRead() est envoy� et que de nouvelles donn�es sont disponibles en lecture ; sinon elle retourne false (si une erreur s'est produite ou que le d�lai est d�pass�).

Voir aussi waitForBytesWritten().

qint64 QAbstractSocket::writeData ( const char * data, qint64 size ) [virtual protected]

R�impl�mentation de QIODevice::writeData().

Remerciements

Merci � Alexandre Laurent pour la traduction, ainsi qu'� Ilya Diallo et Claude Leloup pour la relecture !

Cette page est une traduction d'une page de la documentation de Qt, �crite par Nokia Corporation and/or its subsidiary(-ies). Les �ventuels probl�mes r�sultant d'une mauvaise traduction ne sont pas imputables � Nokia. Qt 4.7
Copyright © 2025 Developpez LLC. Tous droits r�serv�s Developpez LLC. Aucune reproduction, m�me partielle, ne peut �tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'� 3 ans de prison et jusqu'� 300 000 E de dommages et int�r�ts. Cette page est d�pos�e � la SACD.
Vous avez d�nich� une erreur ? Un bug ? Une redirection cass�e ? Ou tout autre probl�me, quel qu'il soit ? Ou bien vous d�sirez participer � ce projet de traduction ? N'h�sitez pas � nous contacter ou par MP !