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
    关注
    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?