Еще один новичок и еще один вопрос новичка. Я пишу скрипт на Python для подключения клиента к open server1 сокету и затем обрабатываю полученное событие от server1, чтобы открыть соединение с другим open server2 сокетом . Когда я пытаюсь запустить следующий скрипт, он дает WinError 10056.
Об этом winerror позаботились, открыв 2 сокета. Спасибо @aminrd. Теперь я хочу обработать двоичное событие, которое я получаю от сервера 1, и обработать это событие для запуска сервера server2. Там может быть несколько двоичных событий, которые я могу получить от server1. Я знаю, как сопоставить их и запустить соединение s2, как я написал в приведенном ниже сценарии. Я уверен, что есть гораздо лучший способ собрать двоичные коды событий в 1 event_list, а затем перебрать их для запуска s2. Спасибо за руководство.
import socket
SHOST = 'xx.xx.xx.xx' # server1 IP address
SPORT = xxxx # The port used by the server1
VHOST = 'xx.xx.xx.xx' # server2 IP
VPORT = xxxxx# server2 Port
BUFFER_SIZE = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((SHOST, SPORT)) # connection to server1
data = s.recv(1024)
print('Received', repr(data))
MESSAGE1 = b'' # send login credentials
s.send(MESSAGE1)
print('Received', repr(data))
MESSAGE2 = b'' # activate the events
s.send(MESSAGE2)
print('Received', repr(data))
while True:
events: bytes = s.recv(1024)
event_list1 = b'1015'
event_list2 = b'1127'
if events.find(event_list1) != -1:
print(f'EVENT RECEIVED: Badge Authorized')
s.connect((VHOST, VPORT))
s.sendall(hex('015A303002534143354104'))
elif events.find(event_list2) != -1:
print(f'EVENT RECEIVED: Unassigned Badge')
else:
print(repr(events))