Здравствуйте, пытался разобраться как работает сокет в пайтоне, написал какое-то подобие чата и скомпилировал. На моем компьютере все работает. Но у других прога вылетает в функции
client
. К слову антивирус был отключен у всех. Подскажите, пожалуйста, что может быть не так.
Вот код.
import socket
import threading
class Connection:
def __init__(self):
self.is_connected = False
self.name = input("Введите ваше имя: ")
self.ip = socket.gethostbyname(socket.gethostname())
def host(self, host, port):
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((host, port))
server.listen(1)
client, addr = server.accept()
threading.Thread(target=self.handle_connection, args=(client,)).start()
server.close()
def client(self, host, port):
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((host, port))
threading.Thread(target=self.handle_connection, args=(client,)).start()
def handle_connection(self, client):
print("Соединение установлено\n")
self.is_connected = True
input_thread = threading.Thread(target=self.input_thread, args=(client,))
input_thread.start()
while self.is_connected:
data = client.recv(1024)
if data:
print(data.decode('utf-8'))
client.close()
self.is_connected = False
def input_thread(self, client):
while self.is_connected:
info = f"{self.name}: {input()}"
client.send(info.encode('utf-8'))
connection = Connection()
connection_type = input("Введите: 1 = cоздать чат / 2 = подключится\n")
if connection_type == "1":
print(f"Ваш ip: {connection.ip}\nОжидание соединения...")
connection.host(connection.ip, 9999)
elif connection_type == "2":
connection.client(input("Введите ip собеседника: ").strip(), 9999)