QT TCPクライアント

.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(); 
}

結果:

おすすめ

転載: www.cnblogs.com/caozewen/p/12174008.html