Заголовки TCP-сокетов PythonPython

Программы на Python
Ответить
Anonymous
 Заголовки TCP-сокетов Python

Сообщение Anonymous »

Мне нужно создать связь между клиентом и сервером с помощью TCP. Но я хотел бы отправлять и работать с «заголовками». Итак, от клиента я хотел бы отправить заголовок «COMMAND1», и сервер мне что-то возвращает.

У меня есть следующий код:

Сервер

Код: Выделить всё

import socket
import threading

bind_ip = '0.0.0.0'
bind_port = 9998

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((bind_ip, bind_port))
server.listen(5)  # max backlog of connections

print ('Listening on {}:{}'.format(bind_ip, bind_port))

def handle_client_connection(client_socket):
request = client_socket.recv(1024)
print ('Received {}'.format(request))
client_socket.send('Response1!'.encode('utf-8'))
client_socket.close()

while True:
client_sock, address = server.accept()
print ('Accepted connection from {}:{}'.format(address[0], address[1]))
client_handler = threading.Thread(
target=handle_client_connection,
args=(client_sock,)  # without comma you'd get a... TypeError: handle_client_connection() argument after * must be a sequence, not _socketobject
)
client_handler.start()
Клиент

Код: Выделить всё

import socket

hostname, sld, tld, port = 'www', 'integralist', 'co.uk', 80
target = '{}.{}.{}'.format(hostname, sld, tld)

# create an ipv4 (AF_INET) socket object using the tcp protocol (SOCK_STREAM)
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# connect the client
# client.connect((target, port))
client.connect(('0.0.0.0', 9998))

# send some data (in this case a HTTP GET request)
client.send('hi'.encode('utf-8'))

# receive the response data (4096 is recommended buffer size)
response = client.recv(4096)

print (response)
Кто-нибудь знает, как лучше всего вернуть «Response1!» когда заголовок «COMMAND1» и «Response2!» когда заголовок «COMMAND2»?

Я не могу найти примеры использования заголовков.

РЕДАКТИРОВАТЬ : Это не обязательно должно быть «COMMAND1» или «COMMAND2», это может быть «0», «1» или что-то еще.

Подробнее здесь: https://stackoverflow.com/questions/485 ... ts-headers
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»