当前位置: 首页 > news >正文

北京网站设计公司jx成都柚米科技15久产久人力有限公司

北京网站设计公司jx成都柚米科技15,久产久人力有限公司,网络营销整合推广,做网站怎么实现在线支付最近一直在学习网络编程,今天把 socket部分做一个总结。 Python 的socket库可以实现不同协议不同地址的发包和收包,无奈资料很少,官方例子有限,大神博客很少提及, 经过一番尝试后,总结以下几点用法以便大家…

最近一直在学习网络编程,今天把 socket部分做一个总结。

Python 的socket库可以实现不同协议不同地址的发包和收包,无奈资料很少,官方例子有限,大神博客很少提及, 经过一番尝试后,总结以下几点用法以便大家以后使用。

client端
import socket
import time
import random
import string# 定义一些常量,变量名可以变。自己好记就行
buffer = 1024  # 发送缓冲区大小,这里是1KB
data_size = 128  # 每个UDP数据包的大小
bandwidth = 1  # 目标带宽,1 Mbps
PACKETS_PER_SECOND = bandwidth * 1024 * 1024 / (8 * data_size)  # 计算每秒需要发送的数据包数量# 目标服务器的IP和端口
SERVER_IP = '127.0.0.1'  # 请替换为实际服务器IP
SERVER_PORT = 1245 # 请替换为实际端口def generate_random_data(size):"""生成随机数据,生成往UDP包中放的随机值"""return ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(size)).encode()def udp_main():# 创建UDP套接字client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)print(f"Starting UDP bandwidth test to {SERVER_IP}:{SERVER_PORT} aiming for {bandwidth} Mbps...")start_time = time.time()packets_sent = 0try:while True:# 生成随机数据data = generate_random_data(data_size)# 发送数据包client_socket.sendto(data, (SERVER_IP, SERVER_PORT))#包计数packets_sent += 1# 控制发送速率以达到目标带宽elapsed_time = time.time() - start_timeif elapsed_time >= 1:#实际带宽,怎么算需要记一下actual_bandwidth = (packets_sent * data_size * 8) / (elapsed_time * 1024 * 1024)print(f"Actual bandwidth: {actual_bandwidth:.2f} Mbps")#重新计算包packets_sent = 0start_time = time.time()time.sleep(1 / PACKETS_PER_SECOND)  # 等待,控制发送频率except KeyboardInterrupt:print("\nBandwidth test interrupted by user.")finally:client_socket.close()def tcp_main():client_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)client_socket.connect((SERVER_IP, SERVER_PORT))start_time = time.time()packets_sent = 0try:while True:data = generate_random_data(data_size)client_socket.send(data)packets_sent += 1elapsed_time = time.time() - start_timeif elapsed_time >= 1:client_socket.send("q".encode())packets_sent = 0start_time = time.time()acutalwidth = (packets_sent * data_size * 8) / (elapsed_time * 1024 * 1024)print(f"Actual bandwidth: {acutalwidth:.2f} Mbps")time.sleep(1/PACKETS_PER_SECOND)except KeyboardInterrupt:print("\nBandwidth test interrupted by user.")finally:client_socket.close()if __name__ == "__main__":tcp_main(

server端

import socketdef Server_Socket():serverip = "0.0.0.0"serverport = 8080#1、2 创建UDP的socketserver_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)server_socket.bind((serverip,serverport))print(f"udp server {serverip}:{serverport}")try:while True:#3、接收客户端发来的值data,addr = server_socket.recvfrom(1024)print(f"recv from {addr}:{data.decode('utf-8')}") #print的内容不用背except KeyboardInterrupt:print("^C received, shutting down the server") #无所谓不用背具体详情finally:server_socket.close()def TCP_socket():serverip = "127.0.0.1"serverport = 1245server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)server_socket.bind((serverip,serverport))print(f"start listening:")server_socket.listen(1024)print(f"tcp socket: {serverip}:{serverport}")try:dataconn,addr = server_socket.accept()print(f"client{dataconn}:{addr}")while True:data = dataconn.recv(1024)print(f"recv from {addr},recv data:{data.decode('utf-8')}")if data.decode('utf-8') == "q":breakdataconn.send("已送达".encode('utf-8'))except KeyboardInterrupt:print("^C received, shutting down the server")finally:server_socket.close()if __name__ == "__main__":TCP_socket()
http://www.yayakq.cn/news/859527/

相关文章:

  • 外包做网站不满意有没有做外贸免费网站
  • 网站备案需要资料建设品牌网站的好处
  • 手机网站怎么做SEO优化竞价开户公司
  • 淘宝客怎么做推广网站在招聘网站做电话销售怎么样
  • 用dw做网站的代码无货源一键铺货软件
  • 大理石在哪些网站做宣传软件开发专业专科学校
  • 网站seo的方法首都航空公司官方网站
  • 垫江网站建设费用模板网字体库免费
  • 怎样建设网站瓯北网站建设
  • 金融投资网站方案wordpress系统api接口
  • 网站空间怎么购买大连网站维护
  • 厦门同安区建设局网站企业邮箱怎么注册?
  • 网上怎样做电缆网站免费正版高清素材库
  • 蒙古文政务网站群建设工作方案wordpress用户同步
  • 企业网站建设费如何列支惠州市住房和城乡建设局网站
  • 广州建网站维护公司大学网站建设管理办法
  • 网站中的图片必须用 做吗聊城集团网站建设流程
  • 阀门公司网站建设品牌的佛山网站建设
  • 广告制作网站源码婚庆企业网站建设
  • logo图标素材网站大型网络游戏排行榜2021前十名
  • 江阴网站建设培训指数函数图像
  • 如皋教育门户网站建设经验软件技术是什么专业
  • 游戏网站建设免费网页源代码视频下载链接
  • 柳市网站批量注册域名
  • 阿里做外贸的网站网站线框图怎样做
  • 做营销推广外包的网站minisite网站案例
  • 网站建设软硬件平台常宁市住房和城乡建设局网站
  • 网站建设微信官网开发泰州网站建设团队
  • 网站信息推广途径包括哪些淘宝客网站域名
  • 网站的内容和功能平面设计和网页设计哪个好