TCP协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。Qt对其提供了简单的封装,当然用windows API或Linux的<sys/socket.h>都能够轻松实现。
TCP协议被称为面向连接的通信协议。原因是TCP协议的传输依赖于TCP连接。一个TCP连接,由两个套接字(socket)组成,分别位于数据传输的两端(在这里为客户端、服务器),字节流数据通过Tcp连接发送一对一消息。
下面时程序运行截图:
代码自取,没办法,有点多,不然我直接贴上来。
链接:https://pan.baidu.com/s/1C8CTqkl7FbISqZxX0BSuZg.``
提取码:dcv8
复制这段内容后打开百度网盘手机App,操作更方便哦
服务器头文件:
class Dialog : public QDialog
{
Q_OBJECT
public:
Dialog(QWidget *parent = 0);
~Dialog();
private:
QListWidget *ContentListWidget;
QLabel *PortLabel;
QLineEdit *PortLineEdit;
QPushButton *CreateBtn;
QGridLayout *mainLayout;
int port;
server *Server;
public slots:
void slotCreateServer();
void updateServer(QString,int);
};
客户端头文件:
class TcpClient : public QDialog
{
Q_OBJECT
public:
TcpClient(QWidget *parent = 0);
~TcpClient();
private:
QListWidget *contentListWidget;
QLineEdit *sendLineEdit;
QPushButton *sendBtn;
QLabel *userNameLabel;
QLineEdit *userNameLineEdit;
QLabel *serverIPLabel;
QLineEdit *serverIPLineEdit;
QLabel *portLabel;
QLineEdit *portLineEdit;
QPushButton *enterBtn;
QGridLayout *mainLayout;
bool status;
int port;
QHostAddress *serverIP;
QString userName;
QTcpSocket *tcpSocket;
public slots:
void slotEnter();
void slotConnected();
void slotDisconnected();
void dataRecevied();
void slotSend();
};