[TCP] Write-Write-Read会有什么问题?

待补充
同时包括

TCP_CORK 和 TCP_NODELAY

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码存在几个问题: 1. 缺少定义和实例化 `look` 和 `edit1` 两个控件的代码,因此在使用它们的时候导致程序崩溃。 2. 在 `connect` 函数中,使用了一个未定义的变量 `user_ame` 和 `user_paw`,应该将其改为已定义的变量或者直接使用字符串。 3. 在使用 `m_tcp1->write` 发送数据时,没有进行错误处理,应该检查是否成功发送。 4. 在 `connect` 函数中,使用了一个未释放的 lambda 表达式,应该将其存储到一个变量中,以便在它不再需要时释放。 下面是修改后的代码: ``` #include "netpaiming.h" #include <QTcpSocket> #include <QHostAddress> netpaiming::netpaiming(QWidget *parent) : QWidget(parent) { setFixedSize(550,500); // 窗口大小 // 实例化 edit1 控件 edit1 = new QTextEdit(this); edit1->setFixedSize(400,400); edit1->move(75,50); m_tcp1 = new QTcpSocket; setWindowTitle("KHD"); // 实例化 look 控件 look = new QPushButton("查看排名", this); look->move(10,10); connect(look, &QPushButton::clicked, this, &netpaiming::onLookClicked); connect(m_tcp1, &QTcpSocket::readyRead, this, &netpaiming::onReadyRead); } void netpaiming::onLookClicked() { QString d = "8899"; unsigned short port = d.toShort(); QString ip = "127.0.0.1"; // 连接服务器 m_tcp1->connectToHost(QHostAddress(ip), port); // 发送数据 QString want = "look"; qint64 bytesWritten = m_tcp1->write(want.toUtf8()); if (bytesWritten == -1) { qDebug() << "Failed to send data to server:" << m_tcp1->errorString(); } } void netpaiming::onReadyRead() { // 读取服务器返回的数据 QByteArray data = m_tcp1->readAll(); edit1->setText(data); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值