qt tcp 通信实例

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QHostAddress>
#include <QMessageBox>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->socket = new QTcpSocket(this);
}
void MainWindow::on_pushButton_2_clicked(){
    this->socket->close();
}
void MainWindow::on_pushButton_clicked(){
    this->socket->connectToHost("127.0.0.1",80000,QTcpSocket::ReadWrite);
    connect(this->socket,SIGNAL(connected()),this,SLOT(connected()));
}
void MainWindow::connected(){
    QMessageBox::about(this,"notice","connect successful");
    connect(this->socket,SIGNAL(readyRead()),this,SLOT(readyread()));
}
void MainWindow::readyread(){
    QMessageBox::about(this,"notice","ready read");
    QByteArray arr = this->socket->readAll();
    QDataStream *des = new QDataStream(&arr,QIODevice::ReadOnly);//重点
    QString str1;
    QString str2;
    (*des)>>str1>>str2;
    qDebug()<<str1+str2;
    QMessageBox::about(this,"x",str1+str2);

}

MainWindow::~MainWindow()
{
    delete ui;
}

  服务端

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QTcpServer>
#include <QTcpSocket>
#include <QMessageBox>
#include <QByteArray>
#include <QString>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->socket = nullptr;
    this->server = new QTcpServer(this);
    this->server->listen(QHostAddress::Any,80000);
    QObject::connect(this->server,SIGNAL(newConnection()),this,SLOT(newConnect()));
}
void MainWindow::newConnect(){
    this->socket = this->server->nextPendingConnection();
    QMessageBox::about(this,"notice","new connect");
    connect(this->socket,SIGNAL(readyRead()),this,SLOT(ReceiveData()));
}
void MainWindow::ReceiveData(){
    QByteArray arr = this->socket->readAll();
    QDataStream dst(arr);
    QString str1;
    QString str2;
    dst>>str1>>str2;
    qDebug()<<str1<<str2;
}
void MainWindow::on_pushButton_clicked(){
    QString str = this->ui->lineEdit->text();
    QByteArray arr;
    QDataStream dst(&arr,QIODevice::ReadWrite);
    dst<<QString("message:")<<str;
    this->socket->write(arr);
}
void MainWindow::on_pushButton_2_clicked(){
    this->socket->close();
}

MainWindow::~MainWindow()
{
    delete ui;
}

  

时间: 2024-10-22 14:45:21

qt tcp 通信实例的相关文章

[python] 网络编程之套接字Socket、TCP和UDP通信实例

很早以前研究过C#和C++的网络通信,参考我的文章: C#网络编程之Tcp实现客户端和服务器聊天 C#网络编程之套接字编程基础知识 C#网络编程之使用Socket类Send.Receive方法的同步通讯 Python网络编程也类似.同时最近找工作笔试面试考察Socket套接字.TCP\UDP区别比较多,所以这篇文章主要精简了<Python核心编程(第二版)>第16章内容.内容包括:服务器和客户端架构.套接字Socket.TCP\UDP通信实例和常见笔试考题. 最后希望文章对你有所帮助,如果有不

专题七.网络编程之套接字Socket、TCP和UDP通信实例

https://blog.csdn.net/Eastmount/article/details/48909861 找工作笔试面试考察Socket套接字.TCP\UDP区别比较多,所以这篇文章主要精简了<Python核心编程(第二版)>第16章内容.内容包括:服务器和客户端架构.套接字Socket.TCP\UDP通信实例和常见笔试考题. https://www.cnblogs.com/alex3714/articles/5227251.html 1.Socket语法及相关 2.SocketSer

QT实现TCP通信服务器端和客户端(支持多个客户端)精简版

上星期接了个私活,工期两星期,报酬3000,写一个小软件,采集定向网络上的数据,并进行双向通信,捣鼓了两天,终于把QT中tcp通信这块调通了,找过N多例子,绝大部分都是基本的一个服务端一个客户端通信的,而且都不完整,甚至有些还发完数据就关闭了,还是自己亲自操刀先做了个TCP小工具,基本的需求搞定.window.open('http://www.qtcn.org/bbs/attachment/Mon_1309/44_110085_04c150bde9df7ee.jpg?67');" style=&

qt 之 TCP 通信代码及解释

服务器: #include "server.h" #include "ui_server.h" Server::Server(QWidget *parent) :     QWidget(parent),     ui(new Ui::Server) {     m_tcpServer = new QTcpServer(this);     //注意,这里的变量是在.h文件中声明的,是一个指针,在头文件中应该包含QTcpServer 这个类,而且在工程文件中应该加入

VC++使用socket进行TCP、UDP通信实例总结

1.        两台计算机通信需要协议,通信的两台计算机IP必须唯一 2.        同一个计算机可以进行多个应用程序与其他计算机通信,IP地址唯一,而端口号是区别同一计算机(同一IP)的唯一标示. 3.        实际上就类似于一个办公室的总机号码(IP)和分机号码(端口号) 4.        协议:为了进行网络中的数据交换(通信)而建立的规则.标准或约定 5.        协议=语义+语法+规则 6.        不同层具有各自不同的协议 7.        上层使用下层提

关于QT上的TCP通信的实现(对比与VS 上C++的实现方式)

上一个blog说了C++的实现方法,但是大黑框的显示未免显得有点太过于不美观,此次具体采用QT的方式进行实现,大致上的流程是这样的: 参考上面的流程图,大致上的实现模式就是这样,但是TCP通信的全双工的形式,所以收发信息的操作对客户端还是服务端而言都i是一样的,所以我们看看代码的实现模式: 首先是TCP的实现 1.先创建这样 然后一路往下点击下一步: 需要注意的是在这里我们选择这个: 接着看看代码:serverWidget.h #ifndef SERVERWIDGET_H #define SER

[C语言]一个很实用的服务端和客户端进行TCP通信的实例

本文给出一个很实用的服务端和客户端进行TCP通信的小例子.具体实现上非常简单,只是平时编写类似程序,具体步骤经常忘记,还要总是查,暂且将其记下来,方便以后参考. (1)客户端程序,编写一个文件client.c,内容如下: #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <string.h> #include <sys/types.h> #include <

JAVASE02-Unit010: 多线程基础 、 TCP通信

多线程基础 . TCP通信 * 当一个方法被synchronized修饰后,那么 * 该方法称为同步方法,即:多个线程不能同时 * 进入到方法内部执行. package day10; /** * 当多线程并发操作同一资源时,由于线程切换的不确定 * 性,可能导致执行顺序的混乱,严重时可能导致系统 * 瘫痪. * @author adminitartor * */ public class SyncDemo1 { public static void main(String[] args) { f

python的socket通信实例

一.socket简介 1. 套接字 套接字是为特定网络协议(例如TCP/IP,ICMP/IP,UDP/IP等)套件对上的网络应用程序提供者提供当前可移植标准的对象. 它们允许程序接受并进行连接,如发送和接受数据.为了建立通信通道,网络通信的每个端点拥有一个套接字对象极为重要. 套接字为BSD UNIX系统核心的一部分,而且他们也被许多其他类似UNIX的操作系统包括Linux所采纳. 许多非BSD UNIX系统(如ms-dos,windows,os/2,mac os及大部分主机环境)都以库形式提供