Один клиент с двумя серверными сокетами подключения Python - PullRequest
0 голосов
/ 06 октября 2019

Еще один новичок и еще один вопрос новичка. Я пишу скрипт на 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...