博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python报错 TypeError: an integer is required
阅读量:5279 次
发布时间:2019-06-14

本文共 1164 字,大约阅读时间需要 3 分钟。

问题描述:

在本地使用socket向NetAssist传送数据的时候,执行python文件后发现报出python 报错TypeError: an integer is required错误

代码:

1 #!/usr/bin/env python3  2 from socket import *  3 udpSocket = socket(AF_INET, SOCK_DGRAM)  4 destIp = input('enter ip:')  5 destPort = input('enter port:')  6 destData = input('enter data:')  7   8 udpSocket.sendto(destData.encode('gb2312'),(destIp, destPort))

执行结果:

enter ip:192.168.162.1enter port:8080enter data:hahaTraceback (most recent call last):  File "udp-code.py", line 8, in 
udpSocket.sendto(destData.encode('gb2312'),(destIp, destPort))TypeError: an integer is required (got type str)

产生原因:

通过查询python文档后,发现是传递的参数不符合socket.sendto()方法的要求

文档描述:

s.sendto(string[,flag],address)

发送UDP数据。将数据发送到套接字,address是形式为(ipaddr,port)的元组,指定远程地址。返回值是发送的字节数。
destPort的类型应该为int类型

修改代码:

1 #!/usr/bin/env python3  2 from socket import *  3 udpSocket = socket(AF_INET, SOCK_DGRAM)  4 destIp = input('enter ip:')  5 destPort = int(input('enter port:'))  6 destData = input('enter data:')  7   8 udpSocket.sendto(destData.encode('gb2312'),(destIp, destPort))

结果:

1117964-20171207143255909-1681129258.png

  • 总结:
  1. 报错后,根据信息分析错误产生原因
  2. 查询相关文档,参数格式是否符合要求

转载于:https://www.cnblogs.com/AimeeCodeWorld/p/7998949.html

你可能感兴趣的文章
php做的一个简易爬虫
查看>>
python学习---购物商场与ATM
查看>>
linux删除乱码文件
查看>>
第十二篇 带控制的物料的实地盘点设置与测试
查看>>
如何在form初始化时自动隐藏FOLDER列
查看>>
ASP.NET环境中后台弹出无刷新环境中的对话框
查看>>
在广州曾经住过的地方——棠下上社
查看>>
.h和.cpp文件的区别(zt)
查看>>
RAID磁盘阵列
查看>>
【Python3】Python脚本执行Linux命令
查看>>
电商项目业务逻辑-2 购物车管理
查看>>
Python装饰器
查看>>
ProjectServer如何让系统管理员模拟普通用户创建自己的时间表
查看>>
实验二
查看>>
web框架之Bottle
查看>>
android学习常见错误
查看>>
玻璃:玻璃
查看>>
公司-摩拜单车:摩拜单车
查看>>
php动态画图
查看>>
windows中创建流量转发规则
查看>>