Home · All Classes · Modules · QSS HELP · QSS 案例 · VER007 HOME |
该QLocalSocket类提供了一个本地套接字。More...
继承QIODevice。
该QLocalSocket类提供了一个本地套接字。
在Windows上,这是一个命名管道,并在Unix上,这是一个本地的域套接字。
如果发生错误, socketError ()返回的错误的类型,并且errorString( )可以被调用来获取发生了什么可读的描述。
虽然QLocalSocket是专为一个事件循环使用,它可以使用它没有之一。在这种情况下,您必须使用waitForConnected( )waitForReadyRead( )waitForBytesWritten()和waitForDisconnected(),它会阻塞,直到操作完成或超时期满。
请注意,此功能不支持的Windows版本早于Windows XP 。
该LocalServerError枚举表示可能发生的错误。可以通过调用来检索最新的错误QLocalSocket.error( ) 。
Constant | Value | Description |
---|---|---|
QLocalSocket.ConnectionRefusedError | QAbstractSocket.ConnectionRefusedError | 连接被对等(或超时)拒绝。 |
QLocalSocket.PeerClosedError | QAbstractSocket.RemoteHostClosedError | 远程套接字关闭了连接。请注意,客户端套接字(也就是该套接字)远程关闭通知发出后将会关闭。 |
QLocalSocket.ServerNotFoundError | QAbstractSocket.HostNotFoundError | 本地套接字名未找到。 |
QLocalSocket.SocketAccessError | QAbstractSocket.SocketAccessError | 套接字操作失败,因为该应用程序缺乏必要的特权。 |
QLocalSocket.SocketResourceError | QAbstractSocket.SocketResourceError | 本地系统跑出来的资源(例如,太多的套接字)的。 |
QLocalSocket.SocketTimeoutError | QAbstractSocket.SocketTimeoutError | 套接字操作超时。 |
QLocalSocket.DatagramTooLargeError | QAbstractSocket.DatagramTooLargeError | 数据报比操作系统的限制(其可以是低至8192字节)大。 |
QLocalSocket.ConnectionError | QAbstractSocket.NetworkError | 与连接时出错。 |
QLocalSocket.UnsupportedSocketOperationError | QAbstractSocket.UnsupportedSocketOperationError | 不是由本地操作系统支持请求的套接字操作。 |
QLocalSocket.UnknownSocketError | QAbstractSocket.UnknownSocketError | 发生不明的错误。 |
这个枚举变量描述了不同的状态,其中一个插座即可。
Constant | Value | Description |
---|---|---|
QLocalSocket.UnconnectedState | QAbstractSocket.UnconnectedState | 该套接字没有连接。 |
QLocalSocket.ConnectingState | QAbstractSocket.ConnectingState | 插座已经开始建立连接。 |
QLocalSocket.ConnectedState | QAbstractSocket.ConnectedState | 连接建立。 |
QLocalSocket.ClosingState | QAbstractSocket.ClosingState | 该插座是即将关闭(数据仍可能等待写入) 。 |
See also QLocalSocket.state( ) 。
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
创建一个新的本地套接字。该parent参数被传递给QObject的构造。
中止当前连接并重置插口。不像disconnectFromServer( ) ,这个函数立即关闭套接字,写缓冲区清除任何挂起的数据。
See also disconnectFromServer()和close( ) 。
从重新实现QIODevice.bytesAvailable( ) 。
从重新实现QIODevice.bytesToWrite( ) 。
从重新实现QIODevice.canReadLine( ) 。
从重新实现QIODevice.close( ) 。
企图使一个连接name。
该插座是在给定的开openMode并首次进入ConnectingState。然后,它尝试连接到由查询返回的地址或地址。最后,如果建立了连接,QLocalSocket进入ConnectedState并发出connected( ) 。
在任何点,该插座能发射error()来通知发生了错误。
另请参阅state( )serverName()和waitForConnected( ) 。
试图关闭套接字。如果有挂起的数据等待写入,QLocalSocket将进入ClosingState并等待,直到所有数据已经写入。最终,将进入UnconnectedState和发射disconnectedFromServer ()信号。
See also connectToServer( ) 。
返回上次发生错误的类型。
See also state()和errorString( ) 。
该函数将尽可能地从内部写缓冲区到插座,而不会阻塞。如果任何数据被写入时,该函数将返回True,否则返回False。
调用此函数,如果你需要QLocalSocket立即开始发送缓冲数据。成功写入的字节数依赖于操作系统。在大多数情况下,你不需要调用这个函数,因为QLocalSocket将自动开始发送数据,一旦控制返回到事件循环。在不存在的事件循环,调用waitForBytesWritten( )来代替。
See also write()和waitForBytesWritten( ) 。
返回该套接字被连接到服务器的路径。
Note:这个函数的返回值是特定于平台的。
See also connectToServer()和serverName( ) 。
从重新实现QIODevice.isSequential( ) 。
返回True如果套接字是有效的,并准备使用,否则返回False 。
Note:套接字的状态必须ConnectedState阅读和写作之前可能发生。
See also state()和connectToServer( ) 。
返回内部读缓冲区的大小。这限制了数据的客户端可以在打电话之前收取的金额read()或readAll( ) 。 0读缓冲区的大小(默认值)意味着缓冲区有没有大小限制,以确保数据不会丢失。
See also setReadBufferSize()和read( ) 。
从重新实现QIODevice.readData( ) 。
所指定的返回对端的名称connectToServer( ) ,或空QString如果connectToServer( )没有被调用或者它失败了。
See also connectToServer()和fullServerName( ) 。
载的大小QLocalSocket的内部读缓冲区是size字节。
如果缓冲区大小被限制为一定的大小,QLocalSocket将不缓存数据超过此大小。特殊情况下,为0的缓冲区大小意味着读缓存器是无限的,所有输入的数据进行缓冲。这是默认的。
此选项很有用,如果你只在读取特定时间点的数据(例如,在实时流应用程序),或者如果你想保护你的插座对接收的数据过多,最终可能导致应用程序用完内存。
See also readBufferSize()和read( ) 。
初始化QLocalSocket与本地套接字描述符socketDescriptor。返回True如果socketDescriptor被接受为有效的套接字描述符,否则返回False 。该插座是由指定的模式打开openMode,并进入由指定的套接字状态socketState。
Note:这是不可能的初始化两个本地套接字使用相同的本地套接字描述符。
See also socketDescriptor( )state()和openMode( ) 。
返回的本地套接字描述符QLocalSocket如果对象是可用的,否则返回-1 。
套接字描述符时,无法使用QLocalSocket在UnconnectedState。
See also setSocketDescriptor( ) 。
返回套接字的状态。
See also error( ) 。
从重新实现QIODevice.waitForBytesWritten( ) 。
等待,直到套接字连接,高达msecs毫秒。如果连接已经建立,该函数将返回True,否则返回False 。当它返回False的情况下,你可以调用error()来确定错误的原因。
下面的例子最多等待1秒,以建立连接:
socket->connectToServer("market"); if (socket->waitForConnected(1000)) qDebug("Connected!");
If msecs为-1 ,此功能将不会超时。
See also connectToServer()和connected( ) 。
等待,直到插座断开连接,直至msecs毫秒。如果连接已经断开,则该函数返回True,否则返回False 。当它返回False的情况下,你可以调用error()来确定错误的原因。
下面的例子最多等待一秒钟的连接被关闭:
socket->disconnectFromServer(); if (socket->waitForDisconnected(1000)) qDebug("Disconnected!");
If msecs为-1 ,此功能将不会超时。
See also disconnectFromServer()和close( ) 。
从重新实现QIODevice.waitForReadyRead( ) 。
此功能块,直到数据可供读取和readyRead()信号已经发出。之后,该函数将超时msecs毫秒,默认的超时时间为30000毫秒。
如果数据可供读取该函数返回True ,否则返回False (如果发生错误或者操作超时) 。
See also waitForBytesWritten( ) 。
从重新实现QIODevice.writeData( ) 。
这是该信号的默认超载。
之后此信号被发射connectToServer( )被调用,并连接已成功建立。
See also connectToServer()和disconnected( ) 。
这是该信号的默认超载。
当插座已断开这个信号被发射。
See also connectToServer( )disconnectFromServer( )abort()和connected( ) 。
这是该信号的默认超载。
这个信号被发射时发生错误之后。该socketError参数描述发生错误的类型。
QLocalSocket.LocalSocketError是不是注册的元类型,所以排队的连接,你将不得不用它注册Q_DECLARE_METATYPE()和qRegisterMetaType( ) 。
See also error( )errorString()和Creating Custom Qt Types。
这是该信号的默认超载。
这个信号被发射时QLocalSocket的状态变化。该socketState参数是新的状态。
QLocalSocket.SocketState是不是注册的元类型,所以排队的连接,你将不得不用它注册Q_DECLARE_METATYPE()和qRegisterMetaType( ) 。
See also state()和Creating Custom Qt Types。
PyQt 4.10.3 for X11 | Copyright © Riverbank Computing Ltd and Nokia 2012 | Qt 4.8.5 |