tcp
[virtual] qintptr QAbstractSocket::socketDescriptor()const
如果QAbstractSocket object是有用的返回本地socket descriptor,如果不能用返回-1;
如果socket用QNetworkProxy,本地socket 函数返回可能是不用用的;
如果QAbstractSocket状态是UnconnectedState,socket descriptor也是不能用的
[virtual] bteool QAbstractSocket::setSocketDescriptor(qintptr socketDescriptor,
SocketState=ConnectedState, OpenMode openMode=ReadWrite)
用socketDescriptor初始化QAbstractSocket,
若socketDescriptor可以接受返回 ture 否则 false;
若mode是openMode,则是打开状态,进入socket 状态 由socketState;
读写buffers清空,丢弃现存数据。
qint64 QIODevice::wirte(const char *data, qint64 maxSize)
写下不超过maxSize字节数据到设备,返回实际字节,若错误发生则返回-1;
[signal] void QAbstractSocket::connected()
这个信号是在connectToHost()被调用并且成功建立连接后发送;
注意:有的时候,在connectToHost()被当地主机调用后直接发送;
[virtual]void QAbstractSocket::connectToHost(const QString &hostName, quint16 port,
OpenMode openMode=ReadWirte,NetworkLayerProtocol protocol=AnyIPProtocol)
根据端口号连接主机,可以IPV4,IPV6
socket在openMode模式下,进入HostLookupState查找状态,查找主机名hostName;
若查找成功,会发送hostFound()信号,QAbstractSocket进入ConnectingState连接状态;开始连接查找到的地址。
最后,若连接成功,QAbstractSocket进入ConnectedState连接状态,并且发送连接成功的信号。
否则,socket会发送错误信号error()
hostName可以是IP地址字符串(如 ”22,22,22,66“)也可以是host name("***.com")
QAbstractSocket将会在必要的时候查找,
port是本地字节。
[signal] void QIODevice::readyRead()
在通讯通道一有数据就会发送这个信号,再有数据到达network socket再次发送
readyRead()不会递归发送
在用这个类的时候:是当有新数据到达的时候发送(如果缓存里还有数据,就不要发送),其他时候不要发送。
bool QTcpServer::listen(const QHostAddress &address=QHostAddress::Any, quint16 port=0)
告诉服务器监听来自地址address和端口port的连接需求
若port是0,表示端口自动选择,若地址是QHostAddress::ANY,表示监听所有网络接口
监听成功返回true,否则返回false.

浙公网安备 33010602011771号