У меня есть программа, состоящая из Java-клиента и Python-сервера. Сервер python может получать несколько подключений, и клиенты будут пытаться подключаться к серверу каждые 17 секунд.
Мой вопрос:
Сервер должен принимать только одно соединение с IP-адресом, введенным пользователем ранее.
HOST = '0.0.0.0'
PORT = 1979
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print 'Socket created!'
try:
s.bind((HOST, PORT))
except socket.error as e:
print(e)
sys.exit()
print 'Socket bind complete'
s.settimeout(30)
s.listen(10)
print 'Listening...'
timeout = 8
timeout_start = time.time()
while time.time() < timeout_start + timeout:
try:
conn, addr = s.accept()
msg = conn.recv(1024)
print ('--------------------------------------')
print (msg)
except socket.timeout as e:
print(e,': No client out there :(')
s.close()
break
print 'Client connected: ' + addr[0] + ':' + str(addr[1])
print ('--------------------------------------')
s.close()
Этот сокет принимает все входящие соединения. Я хочу добавить это перед сокетом:
connectip = raw_input('Please enter the IP of the client you want to connect to ')
и тогда сокет должен принимать клиента только с IP-адресом, указанным пользователем в «connectctip».
Прошу прощения за мой плохой английский