.PROファイル内の単語を追加することにより、1
QT + =ネットワーク
2、.hファイル
#ifndefのMAINWINDOW_H の#define MAINWINDOW_H の#include <QMainWindow> の#include <QTcpSocket> 名前空間Uiの{ クラスのメインウィンドウ。 } クラスのメインウィンドウ:公共QMainWindow { Q_OBJECTの公共: 明示的なメインウィンドウ(QWidgetの*親= 0 )。 〜メインウィンドウ(); プライベートスロット: 無効て、readData(); 空のsendData(); 無効切断(); 空の接続(); 空隙 showConnect(); プライベート: 宇井::メインウィンドウ * UI。 QTcpSocket * ソケット。 }。 #endifの // MAINWINDOW_H
.cppファイル
#include " mainwindow.h " の#include " ui_mainwindow.h " メインウィンドウ::メインウィンドウ(QWidgetの * 親): QMainWindow(親)、 UI(新しい宇井::メインウィンドウ) { UI - > setupUi(この); UI - > pushButton_2->は、setEnabled(偽); ソケット = 新しいQTcpSocket。 接続(ソケット、SIGNAL(readyRead())、このスロット(て、readData()))。 CONNECT(ソケット、SIGNAL(接続())、このスロット(showConnect()))。 接続(ソケット、SIGNAL(切断())、このスロット(切断()))。 CONNECT(UI - >押しボタンSIGNAL(クリック(BOOL))、このスロットは、(接続()))。 CONNECT(UI - > pushButton_2、SIGNAL(クリック(ブール値))、この、SLOT(のsendData())); } メインウィンドウ::〜メインウィンドウ() { 削除UI。 } ボイドメインウィンドウ::接続() { 場合(UI-> pushButton->テキスト()== " 连接" ) { QStringのIP = UI-> lineEdit-> テキスト(); quint16ポート = UI-> lineEdit_2->テキスト()。toUInt (); ソケット - > connectToHost(IP、ポート)。 } 他 { ソケット - > 近いです(); } } ボイドメインウィンドウ:: showConnect() { UI - > pushButton->のsetText(" 断开" )。 UI - > pushButton_2->は、setEnabled(真の); } ボイドメインウィンドウ::て、readData() { QByteArrayデータ = socket-> READALL(); UI - > textEdit-> のsetText(データ)。 } ボイド QStringのSTRメインウィンドウ::のsendData() { = UI-> textEdit_2-> toPlainText(); ソケット - > ライト(str.toStdString()c_str()、str.length())。 } ボイドメインウィンドウ::切断() { UI - > pushButton->のsetText(" 连接" )。 UI - > pushButton_2->は、setEnabled(偽); }
結果: