qq_35860002 2016-11-07 14:29 采纳率: 0%
浏览 3041

qt 用UDP广播后,无法接受到广播的内容怎么回事,求指教。

#include "mainwindow.h"
#include "ui_mainwindow.h"
int port = 8888;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

}

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

void MainWindow::recvmydata()//接收数据
{
//char buf[1024]={0};
while(udpSocket->hasPendingDatagrams())
{
QByteArray datagram;
datagram.resize(udpSocket->pendingDatagramSize());
udpSocket->readDatagram(datagram.data(),datagram.size());

       // udpSocket->readDatagram(buf,sizeof(buf));
        ui->textBrowser->append(datagram.data());
        //memset(buf,0,sizeof(buf));
    }

}
void MainWindow::mysenddata()//发送数据
{
QString ip = ui->ip_lineEdit->text();
QString name = ui->name_lineEdit->text();
QString txt=ui->plainTextEdit->toPlainText();
char buf[1024]={0};
strcpy(buf,txt.toStdString().data());
//QHostAddress::Broadcast *serip=new QHostAddress::Broadcast();
//serip->Q("192.168.23.255");
//udpSocket->writeDatagram(txt,txt.length(),QHostAddress::Broadcast,8888);
udpSocket->writeDatagram(buf,strlen(buf),QHostAddress::Broadcast, 8888);
//delete serip;
ui->plainTextEdit->clear();

}

void MainWindow::on_pushButton_2_clicked()
{
QString ip = ui->ip_lineEdit->text();
QString name = ui->name_lineEdit->text();
if(ip.isEmpty()){
QMessageBox::information(this,"请输入IP地址","IP地址不能为空!");
}else if (name.isEmpty()){
QMessageBox::information(this,"请输入名字","名字不能为空!");
}else if(ip.isEmpty() && name.isEmpty()){
QMessageBox::information(this,"请输入名字和IP","名字和不能为空!");
}else{
QMessageBox::information(this,"欢迎加入聊天室","欢迎"+name+"加入聊天室");
udpSocket = new QUdpSocket(this);
udpSocket->bind(8888,QUdpSocket::ShareAddress | QUdpSocket::ReuseAddressHint);
connect(udpSocket,SIGNAL(readyRead()),this,SLOT(recvmydata()));
connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(mysenddata()));
}
}

为要写一个聊天室UDP的

  • 写回答

1条回答 默认 最新

  • zqbnqsdsmd 2016-11-14 15:28
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启