上位机使用过程中出现的两个错误

最近在进行与上位机的联调测试,在自己调试过程中发现了几个常见的错误提醒。

1.在其上下文中,该请求的地址无效。

                                                            

后来发现是IP没有设置好。

上位机中UDP设置IP地址以及端口号为

                                                           

只需打开 网络和Internet -> 更改适配器选项 -> 以太网 -> 右键属性 -> TCP/IPv4 更改IP地址即可。

                                                 

2.以一种访问权限不允许的方式做了一个访问套接字的尝试。

                                               

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现两个上位机连接两台下位机,可以使用Qt的Socket编程实现。下面是一个简单的实现过程: 1. 创建两个QTcpServer对象,分别用于监听两个上位机的连接请求。 ```cpp QTcpServer* server1 = new QTcpServer(); QTcpServer* server2 = new QTcpServer(); server1->listen(QHostAddress::Any, 6666); server2->listen(QHostAddress::Any, 6667); ``` 2. 在连接请求到达时,通过accept()函数获取连接的QTcpSocket对象,并将其保存起来。 ```cpp void MainWindow::newConnection1() { QTcpSocket* socket = server1->nextPendingConnection(); //保存socket对象 socket1 = socket; } void MainWindow::newConnection2() { QTcpSocket* socket = server2->nextPendingConnection(); //保存socket对象 socket2 = socket; } ``` 3. 上位机通过QTcpSocket对象向下位机发送数据,可以使用write()函数。 ```cpp socket1->write("data to send1"); socket2->write("data to send2"); ``` 4. 上位机从下位机接收数据,可以使用readyRead()信号和readAll()函数。 ```cpp connect(socket1, SIGNAL(readyRead()), this, SLOT(readData1())); connect(socket2, SIGNAL(readyRead()), this, SLOT(readData2())); void MainWindow::readData1() { QByteArray data = socket1->readAll(); //处理接收到的数据 } void MainWindow::readData2() { QByteArray data = socket2->readAll(); //处理接收到的数据 } ``` 这样,两个上位机就可以连接两台下位机了。需要注意的是,连接的端口号需要保持一致,且需要进行错误处理,防止因为连接断等异常情况引起的程序崩溃。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值