Python Server не может быть перезапущен, если клиент C # не закрыт

1

Я создал сервер с Socket в Python и клиент в С# с TCPClient.

Моя проблема: когда клиент подключен и я закрываю сервер, сервер не может перезагрузиться, потому что

    serversocket.bind((host, port))
OSError: [Errno 98] Address already in use

В моем клиенте С# у меня есть Угроза, которая проверяет, имеет ли клиент еще коннект. Когда я закрываю сервер, я получаю сообщение, что клиент потерял соединение, и я запускаю:

public void Close()
    {
        client.Close();
        client.Client.Dispose();
        client = null;
    }

это мой конструктор:

public HardwareCommunicator(string ip, int port)
    {
        client = new TcpClient(ip, port);
    }

Я уже тестирую точку останова. Клиент достигает значения void Close(), но я не могу перезапустить сервер, прежде чем закрыть клиент Gui.

Что я могу сделать?

Теги:
connection
serversocket
tcpclient

1 ответ

0

Я нашел решение. Я добавил на свой сервер Python3

serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

Но у меня такое ощущение, что это просто быстрый и грязный метод!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню