Я изучаю программирование сокетов Unix. Я создал сервер времени, который отправляет необработанные данные времени, и клиент для него, который получает эти данные и преобразует их в местное время.
Когда я запускаю сервер, подключаю к нему клиент (который заставляет их обоих выполнять свою работу и завершает работу), а затем повторно запускаю сервер, я получаю errno = 98 при вызове bind (). Я должен изменить порт в исходном коде сервера и перекомпилировать его, чтобы избавиться от этой ошибки. Когда я запускаю сервер и снова подключаюсь к нему, все в порядке, после повторного запуска ситуация повторяется. Но тогда я могу вернуться к предыдущему порту. Поэтому я прыгаю с порта 1025 на 1026 и наоборот при каждом запуске отладки (что очень часто, так что это немного раздражает).
Это работает следующим образом: сервер открывает сокет слушателя, привязывается к нему, прослушивает его, принимает соединение в сокет данных, записывает в него time_t, закрывает сокет данных и затем закрывает сокет слушателя. Клиент открывает сокет, подключается к серверу, считывает данные и закрывает сокет.
В чем проблема?
Заранее спасибо.