资源简介
描述详见博文: http://blog.csdn.net/liukang325/article/details/45483029
代码片段和文件信息
#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
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-05-26 14:00 FeiQ_3_lk\
文件 4139 2011-09-24 15:18 FeiQ_3_lk\dialog.cpp
文件 1047 2011-09-24 14:53 FeiQ_3_lk\dialog.h
文件 5063 2011-09-23 20:08 FeiQ_3_lk\dialog.ui
文件 2241 2011-09-24 15:39 FeiQ_3_lk\dialogrec.cpp
文件 704 2011-09-24 13:49 FeiQ_3_lk\dialogrec.h
文件 3611 2011-09-24 14:58 FeiQ_3_lk\dialogrec.ui
文件 4322 2011-09-24 15:18 FeiQ_3_lk\feiq_3.cpp
文件 878 2011-09-23 22:56 FeiQ_3_lk\feiq_3.h
文件 5648 2011-09-23 22:36 FeiQ_3_lk\feiq_3.ui
文件 414 2011-09-23 22:36 FeiQ_3_lk\FeiQ_3_lk.pro
目录 0 2011-09-23 17:09 FeiQ_3_lk\icon\
文件 139646 2011-09-08 14:51 FeiQ_3_lk\icon\0.jpg
文件 25493 2011-03-18 16:42 FeiQ_3_lk\icon\111.jpg
文件 140950 2011-03-18 23:10 FeiQ_3_lk\icon\1112.jpg
文件 41122 2011-03-18 21:51 FeiQ_3_lk\icon\1212.jpg
文件 44823 2011-03-18 21:52 FeiQ_3_lk\icon\1313.jpg
文件 14154 2011-03-18 21:53 FeiQ_3_lk\icon\1414.jpg
文件 73977 2011-03-18 21:55 FeiQ_3_lk\icon\1515.jpg
文件 45732 2011-03-18 21:57 FeiQ_3_lk\icon\1717.jpg
文件 4286 2009-04-19 20:30 FeiQ_3_lk\icon\friend.ico
文件 4286 2010-04-06 17:30 FeiQ_3_lk\icon\friend1.ico
文件 2238 2001-05-12 15:49 FeiQ_3_lk\icon\friend2.ico
文件 9662 2008-12-05 19:43 FeiQ_3_lk\icon\friend3.ico
文件 766 2010-02-22 15:53 FeiQ_3_lk\icon\friend4.ico
文件 323590 2006-05-07 03:59 FeiQ_3_lk\icon\services.ico
文件 397 2011-09-23 22:46 FeiQ_3_lk\main.cpp
目录 0 2015-05-26 14:00 Servers_1\
文件 404 2011-09-21 10:11 Servers_1\main.cpp
文件 3366 2011-09-23 13:06 Servers_1\servers_1.cpp
文件 871 2011-09-21 10:26 Servers_1\servers_1.h
............此处省略2个文件信息
相关资源
- qt刻度尺控件
- 推箱子源代码——QT的便捷
- 一种QImage加载大图片的解决方案
- Qt 根据手绘板的压力值画线的一个小
- PyQt5系列教程(二)利用QtDesigner设计
- Qt下 基于smtp协议的邮件发送客户端源
- QT3显示图片小程序
- TrafficMonitoring.zip
- QT登陆页面跳转到主界面的源代码
- ListView自定义Item
- QT4.8.5.zip
- qt_opencv_zbar20181218二维码测距和识别检
- qt5 qftp官方源码
- qt的excel读取并显示到tablewidget的封装
- Qt录音机QAudioInput
- QT 软键盘_支持中文
- Qt调用系统摄像头
- Qt5主窗体:文本编辑器
- Qt绘制雷达表盘
- Qt天气预报程序
- QT5 UDP方式发送数据
- 基于qt的学生信息管理系统
- 零基础学习QTP自动化测试视频教程.
- 源码:Qt上位机(温度曲线图,txt文件
- QT 可使用的简易计算器
- qtListwidget控件使用
- QT实现的模拟win+r窗口
- QT计算器界面和计算器功能实现
- QT浮动窗口dock
- qt做一个贪吃蛇小游戏
评论
共有 条评论