Ошибка

Ошибка #70011: не удаётся занять основной TCP-порт MyChat Server

 

Описание ошибки

При запуске MyChat Server «слушает» основной TCP-порт (по умолчанию 2004) — через него к серверу подключаются клиенты MyChat. Если этот порт уже занят другой программой, сервер запуститься не может и показывает сообщение:

Error #70011

Cannot bind 2004 TCP port, WINSOCK ERROR 10048


Код WINSOCK 10048 (WSAEADDRINUSE) означает "адрес уже используется".

 

Решение проблемы

Возможные варианты, почему так происходит:

  • порт занят другим приложением (другой мессенджер, VPN, прокси, веб-сервер, антивирус);
  • предыдущая копия MyChat Server ещё не выгрузилась из памяти — в "Диспетчере задач" висит процесс mcserv.exe;
  • на компьютере случайно запущены две копии сервера;
  • порт попал в зарезервированный системой диапазон (Hyper-V, WSL, служба winnat).


Как узнать, какая программа заняла порт?

Командная строка от имени администратора: Win+X, "Терминал Windows (Администратор). Выполните:

netstat -ano | findstr :2004


В последнем столбце будет PID процесса, по нему можно узнать, кто конкретно занял этот порт, например, через менеджер задач Windows (Ctrl+Shift+Esc).


Что делать?

  • Решение 1 — освободить порт.

Закройте или остановите программу, которая заняла порт 2004, либо завершите зависший процесс mcserv.exe, после чего запустите сервер снова.


  • Решение 2 — запустить сервер на другом, свободном порту

Укажите свободный порт ключом командной строки:


mcserv.exe /PORT=2005

Номер порта (2005 или любой другой свободный) сохраняется в настройках сервера, поэтому при следующих запусках ключ указывать уже не нужно.

На всех клиентах в настройках подключения укажите новый номер порта.

Откройте новый порт во входящих правилах брандмауэра Windows.


Ещё посмотреть

Порты, которые использует MyChat Server