У меня есть своего рода задание «поймай флаг», где мне нужно подключиться к серверу и порту, получить данные, извлечь число, указанное в этих данных, и отправить его заново.Я предполагаю, что мне нужно продолжать делать это, пока не появится какой-нибудь флаг.
Я попытался сделать это с python-сокетами (что я едва понимаю) и придумал этот код:
import socket
import re
#AF_INET for IPv4, SOCK_STREAM for TCP
clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Tell the socket what IP and port number to connect to
clientsocket.connect(('35.157.111.68', 10172))
while 1:
# Recieve 1024 bytes of data.
data = clientsocket.recv(1024)
if not data: break
# Get only numbers from string
data = re.sub('\D',"", data)
# Send our result to the server.
clientsocket.send(str(data))
Он устанавливает соединение и получает данные, но когда он отправляет номер обратно, он не принимает его должным образом и делает это только один раунд (не зацикливается).