zoukankan      html  css  js  c++  java
  • 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的,进行复制时,不会出现问题

  • 相关阅读:
    POJ 3295 spfa判断是否存在负权回路
    hdu 1385 最短路+输出字典序好题
    hdu 1143 递归
    hdu 1598 并查集+贪心其实就是kruskal的思想
    快速排序
    HDU:Fighting for HDU
    HDU:Saving HDU
    HDU:悼念512汶川大地震遇难同胞——老人是真饿了
    每日一题统计指定的字符串
    每日一题2求一个文件里面指定字符出现的次数
  • 原文地址:https://www.cnblogs.com/Pierre-de-Ronsard/p/3460376.html
Copyright © 2011-2022 走看看