QT利用交换机和多台设备通信

最近遇到了一个非常棘手的问题,在这里做一个记录。

一、实现功能。
1、一台电脑通过交换机和7台设备通信。
2、使用TCP通信协议。
3、我的电脑开7个线程,相当于开7个客户端去连接,7台服务器。
4、7台设备依次改了7个不同的ip地址。

二、现象。
1、单独只连接一台时通信和连接都完全没有问题,可以正常通信。
2、当连接多台时,会出现连接不上的问题,有时候要连好几次才能连上服务器。
3、当同时连多台时,单台发送数据和异常的卡,基本会卡个3秒左右,多台同时发数据时,会出现随机设备直接卡掉线的情况(网络直接断开了)。

三、解决方法。
1、刚开始以为是没有开辟7个线程,都还是在一个线程里运行,所以才会这么卡,后面打印了线程的ID,发现的确是开辟了7个不同的线程,线程问题排除。
2、这里我直接用网络抓包工具Wireshark来查看,如下:
在这里插入图片描述
发现每一次发送都会出现大量的重传,就是这个重传表现出来就是通信非常卡的现象。

四、最终解决方法。

在了解了交换机的工作原理后,(原来交换机是根据不同的MAC地址来区分不同的设置的),之前只是IP不同,但是所有的设备都是用的一个MAC地址。

最后将7台设备改为不同的MAC地址再通信就可以了,完全没有卡顿,连接也很流畅。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值