Использование python-сокетов для подключения к серверу, получения данных и повторной отправки на сервер - PullRequest
0 голосов
/ 13 мая 2018

У меня есть своего рода задание «поймай флаг», где мне нужно подключиться к серверу и порту, получить данные, извлечь число, указанное в этих данных, и отправить его заново.Я предполагаю, что мне нужно продолжать делать это, пока не появится какой-нибудь флаг.

Я попытался сделать это с 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))

Он устанавливает соединение и получает данные, но когда он отправляет номер обратно, он не принимает его должным образом и делает это только один раунд (не зацикливается).

...