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]:对象的复制的更多相关文章

  1. python socket.error: [Errno 10054] 解决方法

    我用的是python2.7   我搜网上10054错误解决方法的时候发现,大部分文章都是以python3为基础的,对于python2不适用. python socket.error: [Errno 1 ...

  2. python socket.error: [Errno 24] Too many open files

    以openwrt AR9331开发板为例,socket连接到1019个就报错 “python socket.error: [Errno 24] Too many open files” 1.查看开发板 ...

  3. idhttp post 出现exception class EIdSocketError with message 'Socket Error # 10054的解决办法(捕捉异常,防止程序挂掉)

    由于项目需要.需要向一个地址提交数据.提交的次数很频繁,但是程序经常raised exception class EIdSocketError with message 'Socket Error # ...

  4. [译]Python - socket.error: Cannot assign requested address

    原文来源: https://stackoverflow.com/questions/48306528/python-socket-error-cannot-assign-requested-addre ...

  5. python socket.error: [Errno 10061]

    用Python写server和client时候如果server中sock.bind(('localhost', 8001))  则client中sock.connect(('localhost', 8 ...

  6. python socket 超时设置 errno10054

    python socket.error: [Errno 10054] 远程主机强迫关闭了一个现有的连接.问题解决方案: 前几天使用python读取网页.因为对一个网站大量的使用urlopen操作,所以 ...

  7. python web开发遇到socket.error[errno 10013]

    socket.error[errno 10013],端口被占用 重新换一个端口,或者把占用该端口的程序关闭就可以了

  8. Python socket进阶 多线程/进程

    #首先,什么场合下用进程,什么场合下用线程: . 计算密集型的用进程. . IO密集型的用进程. xSocket语法及相关 Socket Families(地址簇) socket.AF_UNIX un ...

  9. Python Socket套接字编程

    Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Py ...

随机推荐

  1. js的in运算符与instanceof运算符

    in运算符:希望他的左操作数是一个字符串或可以转换为字符串,希望他的右操作数是一个对象.如果右操作数的对象拥有一个名为左操作数值的属性名,那么表达式返回true. var point= {x:1,y: ...

  2. Eclipse下Python的MySQLdb的安装以及相关问题

    前提是要安装好Python以及eclipse和MySQL的相应版本.本文Python为2.7,MySQL为5.1Eclipse为3.6.2 下载完MySQLdb以后,直接安装即可.在eclipse中启 ...

  3. 应用内存优化之OnLowMemory&OnTrimMemory

    1.应用内存onLowMemory& onTrimMemory优化 onLowMemory& onTrimMemory简介:OnLowMemory是Android提供的API,在系统内 ...

  4. ios开发--企业帐号发布

    这两天需要发布一个ipa放到网上供其他人安装,需要用到企业级开发者账号. 首先详细说明一下我们的目标,我们需要发布一个ipa放到网上,所有人(包括越狱及非越狱设备)可以直接通过链接下载安装,不需要通过 ...

  5. 在Hadoop1.2.1分布式集群环境下安装hive0.12

    在Hadoop1.2.1分布式集群环境下安装hive0.12 ● 前言: 1. 大家最好通读一遍过后,在理解的基础上再按照步骤搭建. 2. 之前写过两篇<<在VMware下安装Ubuntu ...

  6. JSP列表形式显示数据库中的数据 OracleCachedRowSet 实例

    现在数据库中有一张用户表,希望用户在jsp页面中输入用户名和密码以及 用户类型,在servlet中插入数据库后,在另一个jsp页面中把数据库中所有的用户名和类型都以列表的形式列出来    可以用Ora ...

  7. android ADB命令的使用

    http://jingyan.baidu.com/article/fcb5aff7f55c63edab4a7174.html 综上所述,我觉得告知各位菜鸟同学如何删除自带的程序是很有必要的一件事情.1 ...

  8. 如何通过 jQuery text() 和 html()

    text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容(包括 HTML 标记) val() - 设置或返回表单字段的值 $("#btn1").c ...

  9. [转载] 推荐的C++书籍以及阅读顺序

    2014-06-17 转载自 oiramario 的文章 推荐的C++书籍以及阅读顺序 当读者有一定c/c++基础 推荐的阅读顺序: level 1 从<<essential c++> ...

  10. jsonp从服务器读取数据并且予以显示

    之前看了许多的关于jsonp的文章,大多是讲的比较的模糊的,下面是我的个人的理解! 基于这样的一段代码,做下解释: 这是在jsonp中读取数据的时候(取出来当然是json的格式json格式不清楚的,可 ...