资源简介
实现简单的通信
代码片段和文件信息
#include “dialog.h“
#include “ui_dialog.h“
int i;
Dialog::Dialog(QWidget *parent) :
QDialog(parent)
ui(new Ui::Dialog)
{
ui->setupUi(this);
tcpSocket = new QTcpSocket(this);
ip = getIP();
map.load(“./icon/1.jpg“);
map = map.scaled(QSize(390330));
ui->label_back->setPixmap(map);
this->setWindowtitle(tr(“私人聊天中...“));
tcpSocket->connectToHost(serverIP8000);
fDialog = new QFileDialog(this);
fDialog->setFileMode(QFileDialog::ExistingFiles);
connect(fDialogSIGNAL(fileSelected ( const QString & ))thisSLOT(fs(const QString & )));
fDialog->hide();
initSocket();
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::fs(const QString & fs){
//选中文件点击open后会出发该信号 至在打开单一文件时出发
qDebug() <<“fs“< files.clear();
files.append(fs);
file.setFileName(files);
if (!file.open(QIODevice::ReadOnly))
return;
QByteArray qq;
qq.append(“|“);
qq.append(ip + “|“);
qq.append(ipRec + “|“);
qq.append(fs);
tcpSocket->write(qq);
}
void Dialog::sendData()
{
if (!file.atEnd()) {
QByteArray line = file.read(8000);
udpSocket->writeDatagram(lineQHostAddress(ipRec)7755);
i++;
qDebug()<< “send over!“<< i << line.size();
if(line.size() <8000){
QByteArray yes;
yes.append(“*^*文件接收完成!“);
tcpSocket->write(yes);
QMessageBox::warning(thistr(“通知“)tr(“发送成功!“)QMessageBox::Yes);
}
}
}
void Dialog::initSocket()
{
udpSocket = new QUdpSocket(this);
udpSocket->bind(QHostAddress::Any 7758);
connect(udpSocket SIGNAL(readyRead()) this SLOT(readPendingDatagrams()));
}
void Dialog::readPendingDatagrams()
{
while (udpSocket->hasPendingDatagrams()) {
QByteArray datagram;
datagram.resize(udpSocket->pendingDatagramSize());
QHostAddress sender;
quint16 senderPort;
udpSocket->readDatagram(datagram.data() datagram.size() &sender &senderPort);
qDebug() << datagram;
if(datagram == “1“){
qDebug() << “send OK!“;
sendData();
}
}
}
void Dialog::on_pushButton_send_clicked() //发送键
{
QByteArray tmp;
tmp.append(“&&“);
tmp.append(ipRec + “&&“);
tmp.append(ui->lineEdit->text() + “&&“);
tmp.append(ip);
tcpSocket->write( tmp );
tcpSocket->flush();
ui->lineEdit->clear();
ui->lineEdit->setFocus();
}
QString Dialog::getIP() //获取ip地址
{
QList list = QNetworkInterface::allAddresses();
foreach (QHostAddress address list){
if(address.protocol() == QAbstractSocket::IPv4Protocol){
if (address.toString().contains(“127.0.“)){
continue;
}
return address.toString();
}
}
return 0;
}
void Dialog::chuanIP(QString ip_recQString server_ip)
{
ipRec = ip_rec;
serverIP = server_ip;
ui->lineEdit_IP->setText(ipRec);
ui->lineEdit_IP->setReadOnly(t
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4139 2011-09-24 15:18 feiq\FeiQ_3_lk\dialog.cpp
文件 1047 2011-09-24 14:53 feiq\FeiQ_3_lk\dialog.h
文件 5063 2011-09-23 20:08 feiq\FeiQ_3_lk\dialog.ui
文件 2241 2011-09-24 15:39 feiq\FeiQ_3_lk\dialogrec.cpp
文件 704 2011-09-24 13:49 feiq\FeiQ_3_lk\dialogrec.h
文件 3611 2011-09-24 14:58 feiq\FeiQ_3_lk\dialogrec.ui
文件 7064 2017-06-15 10:44 feiq\FeiQ_3_lk\feiq_3.cpp
文件 1483 2017-06-15 10:58 feiq\FeiQ_3_lk\feiq_3.h
文件 12751 2017-06-15 10:56 feiq\FeiQ_3_lk\feiq_3.ui
文件 588 2017-06-30 21:06 feiq\FeiQ_3_lk\FeiQ_3_lk.pro
文件 18007 2017-06-30 21:10 feiq\FeiQ_3_lk\FeiQ_3_lk.pro.user
文件 363 2017-06-25 21:52 feiq\FeiQ_3_lk\header.h
文件 139646 2011-09-08 14:51 feiq\FeiQ_3_lk\icon\0.jpg
文件 25493 2011-03-18 16:42 feiq\FeiQ_3_lk\icon\111.jpg
文件 140950 2011-03-18 23:10 feiq\FeiQ_3_lk\icon\1112.jpg
文件 41122 2011-03-18 21:51 feiq\FeiQ_3_lk\icon\1212.jpg
文件 44823 2011-03-18 21:52 feiq\FeiQ_3_lk\icon\1313.jpg
文件 14154 2011-03-18 21:53 feiq\FeiQ_3_lk\icon\1414.jpg
文件 73977 2011-03-18 21:55 feiq\FeiQ_3_lk\icon\1515.jpg
文件 45732 2011-03-18 21:57 feiq\FeiQ_3_lk\icon\1717.jpg
文件 4286 2009-04-19 20:30 feiq\FeiQ_3_lk\icon\friend.ico
文件 4286 2010-04-06 17:30 feiq\FeiQ_3_lk\icon\friend1.ico
文件 2238 2001-05-12 15:49 feiq\FeiQ_3_lk\icon\friend2.ico
文件 9662 2008-12-05 19:43 feiq\FeiQ_3_lk\icon\friend3.ico
文件 766 2010-02-22 15:53 feiq\FeiQ_3_lk\icon\friend4.ico
文件 323590 2006-05-07 03:59 feiq\FeiQ_3_lk\icon\services.ico
文件 36351 2017-06-05 16:06 feiq\FeiQ_3_lk\image\1.png
文件 5018 2011-09-08 22:27 feiq\FeiQ_3_lk\image\11.PNG
文件 3496 2011-09-08 22:28 feiq\FeiQ_3_lk\image\12.PNG
文件 5126 2011-09-08 22:28 feiq\FeiQ_3_lk\image\14.PNG
............此处省略37个文件信息
- 上一篇:三十种排序算法的可视化
- 下一篇:数据结构和算法分析 历年试卷 浙江大学
相关资源
- 正点原子Mini开发板 CAN总线通信实验移
- SuperSocket网络通信ClientEngine客户端部分
- Andrea Goldsmith无线通信课后题答案
- 文泉驿中英文字体库支持qt4和qt5
- Linux进程线程编程
- SystemView通信系统仿真.doc
- 西南交大通信系统建模与仿真作业
- OsgEarth2.8 使用高程和影像
- 信息与通信工程 专业英语 翻译
- 通信电子线路习题解答(严国萍版
- 北邮 现代通信技术 复习资料
- 斗地主界面程序Qt5.7版本
- 通信录管理系统(用数据库连接,包
- QT5各类控件合集包好常用(QML)
- 企业内部通信系统.
- 串口通信+输入数据波形显示的小程
- 无线通信与车联网测试技术
- 操作系统课程设计进程管理与通信,
- 通信电路原理_第二版_董在望_课后答
- Qt5实现的俄罗斯方块
- 基于qt5、sftp上传文件
- 基于小波变换的跳频信号检测
- 基于两个单片机串行通信的电子密码
- 安卓app之间的socket通信,支持多线程
- 无线通信(Wireless Communication by A.Gol
- 北邮通信原理杨鸿文老师课件.rar
- 数据与计算机通信 课后答案
- IviNetSharedComponents64_Fx20_1.4.1.exe
- 蓝桥杯CT117E串口通信工程
- 周立功can通信动态库文件
评论
共有 条评论