qq_43412960 2019-10-21 18:28 采纳率: 78.6%
浏览 298
已结题

这是一个关于PYTHON的socket问题

import  time
import  array
def jiaoyan(pack):
    if len(pack)%2==1:
        pack+=b'\0'
    words=array.array('h',pack)
    sum=0
    for word in words:
        sum += word
        sum = (sum >> 16) + (sum & 0xffff)
        sum = (sum >> 16) + (sum & 0xffff)
    return (~sum) & 0xffff


icmp=socket.socket(socket.AF_INET,socket.SOCK_RAW,socket.IPPROTO_ICMP)
icmp.settimeout(3)


header = struct.pack('bbHHh', 8,0,0,1234, 1)
data=struct.pack('5s',b'haasd')


print(jiaoyan(header+data))

icmp.sendto(jiaoyan(header+data), ('127.0.0.1', 1))

这是我写的一个python程序,我想完成icmp的封装,发出去,接回来,但是我写的代码最后一行出了错。我不清楚错在哪里。。
看下面的就行 ,下面的是我新更新的!
图片说明
按理说 不应该出现问题的,校验的返回类型应该是二进制的,最后一条代码应该没问题

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-10-21 22:45
    关注

    报了什么错,贴出来看下,是运行错误还是语法错误

    评论

报告相同问题?

悬赏问题

  • ¥15 我想在一个软件里添加一个优惠弹窗,应该怎么写代码
  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流