QT下基于TCP协议的网络通信分为服务端和客服端程序两部分,与之前写的C网络通信不同的是QT下服务器端只需要定义一个服务器对象和用来进行通信的TcpSocket,只需通过监听和连接实现与客服端的连接;客服端中需要定义一个Tcpsocket,通过connectToHost(IP,端口号)进行连接。部分源代码如下:
服务器端:
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QTcpServer> // tcp 服务器类,=====> 负责监听是否有客户端连接
#include <QTcpSocket> // tcp socket ======> 负责tcp的通信
namespace Ui {
class widget;
}
class widget : public QWidget
{
Q_OBJECT
public:
explicit widget(QWidget *parent = 0);
~widget();
public slots:
void newClient();
void readData();
private:
Ui::widget *ui;
QTcpServer server; // 定义一个服务器对象
};
#endif // WIDGET_H
chat.h
#ifndef CHAT_H
#define CHAT_H
#include <QWidget>
#include <QTcpServer>
#include <QTcpSocket>
namespace