python-socket.error[10054]:对象的复制
1、socket.error[10054],对方强制关闭了连接
在用socket.recvfrom时,若事先没有bind时,
先使用socket.sendto,socket.recvfrom
有时会出现socket.error[10054]
原因是因为没有开启接收sendto的服务端
若发送的ADDR是与client在同一网段,不会出现这种问题
但是在中间隔了NAT
猜测:在NAT后,socket.recvrfrom时,由于NAT的原因,若没有事先收到回复包,没有打洞,外面的包进不到NAT内部
路由收到后,所以socket.recvrfrom时就会出错,因为收不到包
2、python 对象的复制
相当于c++的引用
要复制的话最好用copy
3、dict的哈希问题
定义了一个dict={}的全局变量
在func1()中引入dict,并对dict进行了初始化
dict={'1':{{"upRecvTime":0,"downRecvTime":0,"upSendTime":0,"downSendTime":0}},2:{{"upRecvTime":0,"downRecvTime":0,"upSendTime":0,"downSendTime":0}}}
在func2()中引入dict,对dict赋值
dict['1']['upRecvTime']=10
结果dict={'1':{{"upRecvTime":10,"downRecvTime":0,"upSendTime":0,"downSendTime":0}},2:{{"upRecvTime":10,"downRecvTime":0,"upSendTime":0,"downSendTime":0}}}
每个包含"upRecvTime"的value都等于10
猜测:是python对key的哈希出现了问题
把dict={'1':{{"upRecvTime1":0,"downRecvTime1":0,"upSendTime1":0,"downSendTime1":0}},2:{{"upRecvTime2":0,"downRecvTime2":0,"upSendTime2":0,"downSendTime2":0}}}
在赋值的时候就不会出现问题了
备注:但是不使用全局变量,或是在shell中对二级有相同key的,进行复制时,不会出现问题
python-socket.error[10054]:对象的复制的更多相关文章
- python socket.error: [Errno 10054] 解决方法
我用的是python2.7 我搜网上10054错误解决方法的时候发现,大部分文章都是以python3为基础的,对于python2不适用. python socket.error: [Errno 1 ...
- python socket.error: [Errno 24] Too many open files
以openwrt AR9331开发板为例,socket连接到1019个就报错 “python socket.error: [Errno 24] Too many open files” 1.查看开发板 ...
- idhttp post 出现exception class EIdSocketError with message 'Socket Error # 10054的解决办法(捕捉异常,防止程序挂掉)
由于项目需要.需要向一个地址提交数据.提交的次数很频繁,但是程序经常raised exception class EIdSocketError with message 'Socket Error # ...
- [译]Python - socket.error: Cannot assign requested address
原文来源: https://stackoverflow.com/questions/48306528/python-socket-error-cannot-assign-requested-addre ...
- python socket.error: [Errno 10061]
用Python写server和client时候如果server中sock.bind(('localhost', 8001)) 则client中sock.connect(('localhost', 8 ...
- python socket 超时设置 errno10054
python socket.error: [Errno 10054] 远程主机强迫关闭了一个现有的连接.问题解决方案: 前几天使用python读取网页.因为对一个网站大量的使用urlopen操作,所以 ...
- python web开发遇到socket.error[errno 10013]
socket.error[errno 10013],端口被占用 重新换一个端口,或者把占用该端口的程序关闭就可以了
- Python socket进阶 多线程/进程
#首先,什么场合下用进程,什么场合下用线程: . 计算密集型的用进程. . IO密集型的用进程. xSocket语法及相关 Socket Families(地址簇) socket.AF_UNIX un ...
- Python Socket套接字编程
Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Py ...
随机推荐
- linux查找有用日志常用技巧
对于高级测试人员来说.需要有快速定位问题的能力,而查看有效的日志就是其中有效的方法之一,然而服务器上的日志多如牛毛,如何快速从中找出所需信息非常重要,以下是我在工作中用到的查找日志的简单命令,希望对大 ...
- C#获取根目录的方法集合
1.取得控制台应用程序的根目录方法 方法1.Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径 方法2.AppDomain.Curren ...
- jsp中利用checkbox进行批量删除
一.将前台jsp页面中的所有你要用到checkbox的name值设为相同,如 <input type="checkbox" name="userid"&g ...
- sdk manager更新超时 time out
sdk manager选择菜单tools->options,勾选下面的force https......重启sdk manager
- 两则C++知识点
返回引用遵守的两条准则: 1. 不能返回局部变量: 2. 不能返回new出的量,因为可能是临时对象. const的用法: 1. 基本数据类型的写限制: 2. 函数的传入以及返回参数: 3. 类内的数据 ...
- java Cache框架
Cache框架乱炖 各类开源的缓存解决方案 JBossCache/TreeCacheJBossCache是一个复制的事务处理缓存,它允许你缓存企业级应用数据来更好的改善性能.缓存数据被自动复制,让 ...
- 把properties放到src的package中
eclipse在buildporject的时候会自动将properties文件拷贝到/build下的相应的package中
- linux怎么运行.SH文件
执行sh xx.sh命令就可以执行.sh文件了.如果直接执行xx.sh文件,就报权限错误 解决办法:执行chmod u+x xx.sh 来添加执行权限
- 将SQL Azure数据库备份到本地SQL Server 2012
整个备份过程可以分为如下两大步骤进行: 一.通过“Export Data-tier Application”先将目标SQL Azure的数据库备份到本地,详细步骤如下: 1.启动SQL Server ...
- LA 4255 Guess
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...