网络(本地与云)传输时延代码(Python Ubuntu)

背景

最近需要计算任务的传输的时延
找了许多代码都和网络原理里面的公式有关
然而在实际应用中并不能如此理想化
在边端与云端的任务传输中进行计算
Ubuntu系统 与 Ubuntu云平台

思路

下文的网络的传输时延,任务以包开始计算
服务器先打开端口监听
客户端再通过TCP连接传包并计算
最后算出总时间,同理也可算平均往返时延。

代码

服务器

import socket
import sys
import time
# -*- coding: utf-8 -*-
ISOTIMEFORMAT='%Y-%m-%d %X'
address = ('0.0.0.0', int(sys.argv[1]))
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(address)
s.listen(5)
var = 1
while var == 1 :
  ss, addr = s.accept()
  ss.send('a'.encode())
  ra = ss.recv(512)
ss.close()
s.close()

客户端

import socket
import sys
import time

# -*- coding: utf-8 -*-

address = (sys.argv[1], int(sys.argv[2]))
var = int(sys.argv[3])
totalUseTime=0.0
while var > 0:
  startTime=time.time()
  s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  s.connect(address)
  s.send('a'.encode())
  data = s.recv(512)
  endTime=time.time()
  useTime=(endTime-startTime)*1000
  var-=1
  totalUseTime+=useTime
avgUseTime=totalUseTime/int(sys.argv[3])/2
print ("Total time:",totalUseTime,"ms")
s.close()

运行

首先将ubuntu连上云

ssh root@xxx.xxx.xxx.xxx (云的IP)

在这里插入图片描述
在云上运行server
运行命令

python3 server.py 8343(监听端口号)

在本机运行client

python3 client.py xxx.xxx.xxx.xxx 8343(端口号) 4(包的数量)

端口号与包的数量自定义

问题

ConnectionRefusedError: [Errno 111] Connection refused
原因分析:实验使用本机与云平台,本地可ping通云(注意:云不能Ping通本地)说明是端口号的原因,查找云,发现云有安全组问题,故连接被拒绝
问题解决:进入云平台,在安全组中手动添加端口。

一定要先运行服务器监听端口

结果

在这里插入图片描述

代码借鉴于
网络两端延时测试脚本

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值