在Linux中,我可以使用以下命令生成TCP/UDP包。在
echo "hello world" > /dev/tcp/127.0.0.1/1337
echo "hello world" > /dev/udp/127.0.0.1/31337
我一直在寻找一种类似的方法在Python中实现,但它不像Linux那么简单。在
我在Windows中使用python3.5.1并尝试以下代码。在
^{pr2}$我还执行了一个数据包捕获来查看这个数据包,并且能够看到TCP的3路握手以及FIN数据包。在
所以,我的问题是:
当我在Linux中运行echo "hello world" > /dev/tcp/127.0.0.1/1337
时,我可以看到这个消息。在
我在google上搜索了这个错误,发现了类似的错误here,但代码不同。在
请告诉我代码有什么问题,以及如何修复它。在
C:\Python\Codes>tcp.py
Traceback (most recent call last):
File "C:\Python\Codes\tcp.py", line 12, in <module>
s.send(MESSAGE)
TypeError: a bytes-like object is required, not 'str'
C:\Python\Codes>
而不是这样:
这个:
^{pr2}$正如回溯所说,这是一个TypeError:bytes对象是必需的,而不是str
因此,您可以在字符串上使用
.encode()
来获得一个类似的bytes对象,然后使用.decode()
来取回字符串。在在这里,这个链接,你可能会发现它很有用。Best way to convert string to bytes in Python 3?
希望有帮助。在
相关问题 更多 >
编程相关推荐