udp和tcp切换之坑

       某服务既支持udp访问, 也支持tcp访问。 某客户端一直是tcp访问, 切换程udp访问后, 一切work正常, 但到高峰时候,就出现故障, 经查, 是buf找过了udp的65507的限制。

        

       某服务原来只支持udp访问, 后来又切成tcp访问, 但没有包完整性判断, 导致业务层收包不完整, 坑。


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的使用Qt编写的网络IP和端口udptcp模式切换的软件的示例: 1. 创建一个新的Qt项目,选择Qt Widgets Application。 2. 在项目目录中创建一个新的源文件,命名为mainwindow.cpp,并将以下代码添加到文件中: ``` #include "mainwindow.h" #include "ui_mainwindow.h" #include <QUdpSocket> #include <QTcpSocket> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); // 初始化UI ui->udpGroupBox->setChecked(true); // 设置默认IP和端口 ui->ipLineEdit->setText("127.0.0.1"); ui->portLineEdit->setText("8888"); // 连接按钮的信号和槽 connect(ui->connectButton, &QPushButton::clicked, this, &MainWindow::connectToServer); } MainWindow::~MainWindow() { delete ui; } void MainWindow::connectToServer() { // 获取IP和端口 QString ip = ui->ipLineEdit->text(); int port = ui->portLineEdit->text().toInt(); // 创建套接字 if (ui->udpGroupBox->isChecked()) { // UDP模式 QUdpSocket* udpSocket = new QUdpSocket(this); udpSocket->connectToHost(ip, port); // TODO: 发送和接收数据 } else { // TCP模式 QTcpSocket* tcpSocket = new QTcpSocket(this); tcpSocket->connectToHost(ip, port); // TODO: 发送和接收数据 } } ``` 3. 在mainwindow.h文件中添加以下内容: ``` #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private slots: void connectToServer(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H ``` 4. 打开mainwindow.ui文件,在UI设计器中添加以下控件: - 一个IP地址输入框(QLineEdit) - 一个端口号输入框(QLineEdit) - 一个UDP模式单选框(QRadioButton) - 一个TCP模式单选框(QRadioButton) - 一个连接按钮(QPushButton) 5. 连接控件到槽函数: - 将IP地址输入框的textChanged信号连接到槽函数connectToServer()。 - 将端口号输入框的textChanged信号连接到槽函数connectToServer()。 - 将UDP模式单选框的toggled信号连接到槽函数connectToServer()。 - 将TCP模式单选框的toggled信号连接到槽函数connectToServer()。 - 将连接按钮的clicked信号连接到槽函数connectToServer()。 6. 编译并运行程序,测试网络IP和端口udptcp模式切换的功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值