Во-первых, я новичок в питоне, так что я не очень опытный.
Вот код моего сервера - клиентской программы:
import getpass
from requests import get
import os
import thread
import socket
import sys
os.system('cls' if os.name == 'nt' else 'clear')
print '\033[91mMCP CONTROLLER\033[0m'
print ('--------------------------------------')
print ('Welcome back,' + getpass.getuser())
print ('--------------------------------------')
ip = get('https://api.ipify.org').text
print ('Your current external IP is: ' + ip)
print ('--------------------------------------')
HOST = 'localhost'
PORT = 1979
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print 'Socket created!'
try:
s.bind((HOST, PORT))
except socket.error as msg:
print 'lul'
sys.exit()
print 'Socket bind complete'
s.listen(20)
print 'Listening...'
while 1:
conn, addr = s.accept()
print 'Client connected: ' + addr[0] + ':' + str(addr[1])
msg = conn.recv(1024)
print (msg)
s.close()
print ('Please enter command')
Моя проблема в том, что я хочу, чтобы программа через 20 секунд остановила сокет и выполнила «печать (« Пожалуйста, введите команду »)», независимо от того, подключен кто-то к нему или нет. Если я запускаю программу сейчас, она просто говорит «Прослушивание ...» (если я не запускаю клиент) навсегда, и единственный вариант, который у меня есть, - это закрыть окно терминала. Но я хочу, чтобы программа продолжала работать через 20 секунд.
И я также хочу, чтобы в нем было какое-то специальное сообщение, если через 20 секунд не было никакого соединения (например, печать «клиент недоступен»)
Прошу прощения за мой плохой английский.