摘要:
随笔,比较简短的一个知识点,后续有需要再扩展。 之前一直以为nack存储是一个序号一个序号的存储,今天仔细研究后发现其实nack只有两个数据,一个pkt id和一个Lostpkts,Lost pkts为一个uint16的整数,用来作为一个bitmap,两者何为一个nack_pair, 具体为将Los 阅读全文
摘要:
本文主要介绍链表结构,本人才疏学浅,文中如有出现知识点错误或者代码错误,还请大家多多指正。 首先是单向无环链表: 在单向无环链表中,每个节点由两部分组成: data 和 next_node,next_node用于指向下一个节点,而data表示在当前节点中存储的数据。 struct node{ int 阅读全文
摘要:
在网络编程中我们避免不了与bytes序列打交道,python中提供了两种存储byte的结构:bytes和bytearray。 首先说明一点,bytearray比bytes更加灵活,而且bytearray可以转为bytes。但是bytes因为不允许修改,所以会更加安全。 bytes(n):初始化一个长 阅读全文
摘要:
如果代码无误这种情况一般是因为pycharm的原因,网上有各种教程比如关闭科学模式,但是我在自己的pycharm上没有找到科学模式,最终还是将plt.show()改为plt.save(file),之后再打开观看 阅读全文
摘要:
在之前我们已经介绍过了如何在golang中利用socket进行通信,在本文我们将介绍如何在python中编写socket函数进行通信。 在python中的socket通信与c中socket通信书写比较相似,以下为一个服务器端示例代码 import socket sock=socket.socket( 阅读全文
摘要:
在golang中,我们通常使用go关键词来开启一个新的线程,来加速程序运行或者完成业务需求,但是gorouting并不支持有返回值,对此,如果我们想从新开的线程中获取数据来被其他线程所使用时,我们就需要用到channel。 ch:=make(chan int,1)这个语句表明创建一个缓冲区为1的,传 阅读全文
摘要:
今天在写leetcode的一个简单问题的时候发现golang的切片传递并不是直接 传递地址的,而是一个地址副本。 如图所示,当我利用test函数对nums1和nums2数组处理时,并不是对原来的nums1和nums2做处理,而是对他们的副本nums1_temp和nums2_temp做处理,但是num 阅读全文
摘要:
因为之前一直在考虑拥塞控制问题,忽略了硬件设备问题,所以在此记录下会影响短距离有线连接网络网速的几个重要硬件: 首先是两台主机的网卡NIC,网卡决定了你能发送或者接收的最大速率,不过这个一般不太像是会成为限制的原因,我的两台电脑一台最高1Gbps一台最高2.5Gbps,虽然不是特别高,但是普通的实验 阅读全文
摘要:
因为需要打印传输信息,要用到pion的stats,而stats返回报告的又包含多个type,对于不同type有不同的数据统计,所以需要打印类型和switch case针对于不同的type执行不同的命令。 针对于返回变量类型,golang采用reflect包,对于变量valua,可以利用reflect 阅读全文