![Python:TCP/IP 套接字客户端,如何发送登录包?](https://linux22.com/image/1470339/Python%EF%BC%9ATCP%2FIP%20%E5%A5%97%E6%8E%A5%E5%AD%97%E5%AE%A2%E6%88%B7%E7%AB%AF%EF%BC%8C%E5%A6%82%E4%BD%95%E5%8F%91%E9%80%81%E7%99%BB%E5%BD%95%E5%8C%85%EF%BC%9F.png)
我想创建一个机器人来向游戏服务器发送登录/加入数据包。这样它就会加入然后发送更多数据包,以便在聊天中写些东西,但我不知道该怎么做。如果有人能帮助我,我会非常感激!
这是我目前得到的代码:
import socket
# Create a TCP/IP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Connect the socket to the port where the server is listening
server_address = ('79.133.198.11x', 23073)
sock.connect(server_address)
# Trying to send something
PACKET = "Hello World!".encode('utf-8')
sock.send(PACKET)
# Close connection
sock.close()
仅供参考,我选择尝试的游戏是“Soldat”,这是一款老式 2D 射击游戏。另外,有人告诉我我可以使用 wireshark 或一些数据包嗅探器,但我不知道以何种形式将其放入代码中以及如何发送它。
--
编辑:我安装了 Wireshark 并在连接到服务器时监听了端口 23073,并给了我以下数据(UDP 协议):
0e:e9:6e:00:31:2e:36:2e:38:4d:61:6a:6f:72:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:0b:32:31:45:39:33:35:42:41:44:37:30:00
我如何将其应用于代码并将该数据包发送到已建立的连接?
答案1
实际上并不存在登录数据包。数据包包含应用程序协议命令,因此包含登录信息的数据包的内容将由实现应用程序协议的系统指定。例如,以下是 HTTP 应用程序协议的命令:http://papa.det.uvigo.es/~theiere/cursos/Curso_WWW/codes.html
如果不了解所使用的身份验证系统和协议,就不可能写入包含有效命令序列的数据包,因此您必须了解更多有关要登录的系统的信息。