Qt tcp client程序
2014-04-19 22:15
330 查看
用Qt写了个简单的Tcp客户端程序。
工程名client;
1> client.pro中不要忘了加入:
2> mainwindow.h
2> mainwindow.cpp
3> 上面代码中使用了mainwidnow.ui见名之意应该很容易理解。
工程名client;
1> client.pro中不要忘了加入:
QT += network
2> mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QtNetwork/QTcpSocket>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_connectBtn_clicked();
void connectedSlot();
void disconnectedSlot();
void readyReadSlot();
void errorSlot(QAbstractSocket::SocketError);
void on_sendBtn_clicked();
void on_clearBtn_clicked();
private:
Ui::MainWindow *ui;
QTcpSocket *socket_;
bool isConnected_;
};
#endif // MAINWINDOW_H
2> mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
isConnected_(false)
{
ui->setupUi(this);
socket_ = new QTcpSocket(this);
connect(socket_, SIGNAL(connected()), this, SLOT(connectedSlot()));
connect(socket_, SIGNAL(disconnected()), this, SLOT(disconnectedSlot()));
connect(socket_, SIGNAL(readyRead()), this, SLOT(readyReadSlot()));
connect(socket_, SIGNAL(error(QAbstractSocket::SocketError)), this,
SLOT(errorSlot(QAbstractSocket::SocketError)));
}
MainWindow::~MainWindow()
{
delete socket_;
delete ui;
}
void MainWindow::connectedSlot()
{
isConnected_ = true;
}
void MainWindow::disconnectedSlot()
{
isConnected_ = false;
socket_->close();
}
void MainWindow::readyReadSlot()
{
QByteArray message = socket_->readAll();
ui->recvEdit->append(message);
}
void MainWindow::errorSlot(QAbstractSocket::SocketError)
{
QMessageBox::information(this, "show", socket_->errorString());
disconnectedSlot();
}
void MainWindow::on_connectBtn_clicked()
{
socket_->connectToHost(ui->addressEdit->text(), ui->portEdit->text().toInt());
}
void MainWindow::on_sendBtn_clicked()
{
if (isConnected_) {
QString str = ui->sendEdit->text();
socket_->write(str.toLatin1().data(), str.length());
} else {
QMessageBox::information(this, "show", "unconnected");
}
}
void MainWindow::on_clearBtn_clicked()
{
ui->recvEdit->clear();
}
3> 上面代码中使用了mainwidnow.ui见名之意应该很容易理解。
相关文章推荐
- tcp_client.c 客户程序服务模型
- Client-Server C程序示例C (使用 Sockets 和 TCP)
- Qt一步步搭建TcpServer4——Client的封装与网络库的使用
- QT做的tcpsocket测试工具源码及单独发布的可执行程序
- 对Qt下对话服务器客户端的总结(MyTcpServer与MyTcpClient)
- Qt网络程序:基于TCP的服务器、客户端实例
- 基于Linux的Socket编程之TCP全双工Server-Client聊天程序
- TCP编程(6):客户端接收程序TcpClient
- Qt模块化笔记之network——写第一个Tcp程序(1)
- QT下TCP协议通信的Client端
- QT tcpsocket 在断开后重新连接程序直接崩溃
- Winsocket 一:单线程阻塞server&client程序(tcp)
- 基于Linux的SOCKET编程之TCP半双工Client-Server聊天程序
- 深入Boost.asio的异步Tcp通信的server、client,可用来当程序骨架。
- 孙其功陪你学之--QT界面程序经过网路与普通的linux应用程序进行数据传送的情况(UDP协议,非TCP协议):
- 使用TcpListener的AcceptSocket()方法和AcceptTcpClient()方法接受远端数据时,程序总是好像死机一样!请问如何解决?
- 网络编程-TCP程序实例(client端heserver端相互通信)
- Qt5_TCP_Client01
- Qt实用技巧:基于tcp的C/S构架多人聊天程序(在线、离线、离线信息再次登录后发送等)
- Qt-网络与通信-TCP版本聊天程序