qt实现Tcp通信
Tcp是较为可靠,面向流卖弄相连接的传输协议,他比较合适用在连续数据的传送,但是他的实用性并不高,因为它是一种低级的网络协议,如果需求更多,http和ftp的使用更为广泛。
Tcp通信是一对一的通信,客户端和服务器端是一种相辅相成,互相不可或缺的关系。
注意:客户端与服务器端的监听端口和监听地址必须保持一致! 否侧会出现连接不成功的问题。
客户端
virtual void connectToHost(const QString &hostName, quint16 port, OpenMode mode = ReadWrite, NetworkLayerProtocol protocol = AnyIPProtocol);
主要使用前两个参数,第一个参数是他的ip地址 第二个参数为他的端口号,通过这两个参数向服务器端发送链接。
服务器端
bool listen (const QHostAddress &address = QHostAddress::Any, quint16 port = 0);
这个函数的使用方法与用户端的connectToHost类似,第一个参数是他的ip地址 第二个参数为他的端口号。通过这两个参数对客户端进行监听。
共同使用:
Write(string) 当需要把数据发送出去,在服务器端接收时使用这个函数。
读取数据:
while(tcpClient->*canReadLine*())
{ui->plainTextEdit->appendPlainText("[in]"+tcpClient->readLine());
}
canReadLine() 用于判断当前语句是否结束,但是要值得注意的是,他所认为的结束是指有换行符,如果在发送数据的时候没有拼接上换行符他会一直处于等待的状态*
在进入循环过后,开始正式读取他的数据并在ui中显示。
总结
在实现tcp通信的过程中,一定要区分好客户端与服务器短的区别,乙方在使用过程中造成混乱。今天的更新到此结束,有不对的地方请各位多多指教。
- 点赞
- 收藏
- 关注作者
评论(0)