基本思路
在数据传输之前,必须建立一个到远程主机和端口的TCP连接。一旦该连接建立了,那么IP地址和端口号都可以通过QTcpSocket::peerAddress() 和 QTcpSocket::peerPort()获取。任何时候都可以关闭连接,并且数据传输也会立即停止。
QTcpSocket依赖于事件循环检测到来的数据,并且自动刷新即将发出去的数据。你可以通过QTcpSocket::write()将数据写入到套接字中,并且通过QTcpSocket::read()读取数据。QTcpSocket代表了两个独立的数据流:一个是读数据流,另一个是写数据流。
由于QTcpSocket继承自QIODevice,你可以将它与QTextStream和QDataStream一起使用,当从一QTcpSocket中读取数据时,你必须通过调用QTcpSocket::bytesAvailable()确保有足够的数据可读。
如果你需要处理进入的TCP连接(例如,在一个服务器程序中),那么就使用QTcpServer类。通过调用QTcpServer::listen()来建立服务器,并且连接到QTcpServer::newConnection()信号,该信号在每一个客户端连接后发送。在你自己的槽函数中,使用QTcpServer::nextPendingConnection()来接受该连接请求,并且返回QTcpSocket和客户端通信。
基本操作(过程)
1.连接服务器
QTcpSocket *m_tcpSocket= new QTcpSocket(this);
m_tcpSocket->connectToHost("127.0.0.1", 9877);//参数分别为地址和端口
//只有使用waitForConnec