资源简介
实现简单的通信

代码片段和文件信息
#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个文件信息
- 上一篇:三十种排序算法的可视化
- 下一篇:数据结构和算法分析 历年试卷 浙江大学
相关资源
- 易语言OTG串口通信
- STM32 2.4G通信例程
- Visio图标-最新最全的网络通信图标库
- 基于蓝牙4.0的设备通信方案设计与实
- WPF USB 网络 串口 通信软件
- 使用选择性重传协议实现UDP可靠通信
- DELPHI与西门子200PLC的串口通信实例
- Labview与CH372CH375的通信测试
- 通信软件的具体实例──基于Socket的
- QT局域网聊天系统(基于QT5.修改过)
- 防火墙编程-Visual C 网络通信开发
- 通信原理各种调制与解调的C程序
- 课程设计蔬菜大棚自动控制系统,包
- MCGS与单片机通信
- 清华通信重要国际学术会议目录
- 通信类大公司华为中兴公司面试题目
- 8251 全双工异步通信
- 8051F040SMBUS多机通信
- USB 驱动 让电脑与arm进行通信
- 数据结构-最小通信网问题
- 51多机通信(内附Proteus及.hex文件)
- 光通信基本教程--详细描述光纤通
- USB助手(调试USB通信协议的工具) 源
- 进程的管道通信编制一段程序,实现
- 《Visual Basic 串口通信与测控应用技术
- 采用WINSOCK2 编写的TCP/UDP通信程序
- 用IdFTPServer写的一个FTPServer程序
- socket文件传输源码
- 神经网络仿真工具源代码
- 基于能量和距离的无线传感器网络分
评论
共有 条评论