QT类学习系列(5) - QTcpSocket

转自:http://blog.csdn.net/rl529014/article/details/52884845

下载地址:http://download.csdn.net/detail/rl529014/9660330

效果图:

原理:

用到的库:QTcpServerQTcpServerQHostAddressQtNetwork

在服务端下方的行编辑器输入123,点击“发送”,服务端的消息框和客户端的消息框同时显示123,以及发送和接收的时间;

 

原理分析:

用到的类(库)QTcpServerQTcpServerQHostAddressQtNetwork

 

 

实现上述过程的关键步骤;

服务端:

开放地址,准备接收数据:

首先,服务端利用listen方法建立主机地址,以及分配端口号6666

tcpServer->listen(QHostAddress::Any,6666);

服务端发送下一个悬而未决的连接:

tcpSocket = tcpServer->nextPendingConnection();

 

接收数据

tcpSocket发送准备读的信号,本对象开始槽接收数据onReciveData;

    connect(tcpSocket,SIGNAL(readyRead()),SLOT(onReciveData()));

onReciveData中,tcpSocket通过方法readAll读取socket中的内容(刚才服务端写入到socket中的值);并将内容赋值给字符串data,并将接收到内容显示在消息框:

    QString data = tcpSocket->readAll();

...

ui->textEdit->setText(mChat);

 

 发送,向socket中写数据:

在服务端,点击“发送”,就会槽sendMessage

connect(ui->sendBtn,SIGNAL(clicked(bool)),SLOT(sendMessage()));

在行编辑器写好了发送信息sendMessage后,会首先在服务端显示出来,:

将上面的数组mChat显示在指定的文本编辑框;

    ui->textEdit->setText(mChat);

通过tcpSocket的写方法,将发送的数据写到socket中;(......

   tcpSocket->write(sendMessage);

 

 

客户端:

建立连接:

取消已有的连接

    tcpSocket->abort();

tcpsocket开始方法:连接到主机(地址是:127.0.0.1,端口号:6666

    tcpSocket->connectToHost("127.0.0.1",6666);

 

接收数据:

tcpSocket从数据中读取到的数据存到 QString类的data中;

    QString data = tcpSocket->readAll();

显示该字节数组(因为是QT自身封装类,可以直接显示)

    ui->textEdit->setText(mChat);

 

发送数据:

点击按键,发送信息:

    connect(ui->sendBtn,SIGNAL(clicked(bool)),SLOT(onSendMessage()));

将输入框中的内容写入到字符串textEdit

    QString textEdit = ui->lineEdit->text();

tcpSocket通过写write,将字节数组sendMessage发送出去

tcpSocket->write(sendMessage);


源码:见链接:http://download.csdn.net/detail/rl529014/9660330


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值