Я бы сказал, что есть третий способ:
public class Something {
public void justAnotherMethod() { ... }
}
new Thread(new Runnable() {
public void run() {
instanceOfSomething.justAnotherMethod();
}
}).start();
Возможно, это немного повлияло на мое недавнее интенсивное использование Javascript и Actionscript 3, но таким образом ваш класс не должен реализовывать довольно смутный интерфейс, такой как Runnable
.
Вы пытаетесь привязать к IP-адресу, который на самом деле не назначен вашему сетевому интерфейсу:
bind_ip = "184.168.237.1"
См. Документация кодов ошибок Windows Sockets :
WSAEADDRNOTAVAIL 10049 Невозможно назначить запрошенный адрес.
Запрошенный адрес недействителен в его контексте. Обычно это происходит из-за попытки привязки к адресу, который недействителен для локального компьютера.
blockquote>Это может быть IP-адрес, который ваш маршрутизатор прослушивает перед использованием NAT (преобразование сетевых адресов ), чтобы поговорить с вашим компьютером, но это не значит, что ваш компьютер вообще видит этот IP-адрес.
Либо привязайте к
0.0.0.0
, который будет использовать все доступные IP-адреса (как локальные, так и любые общедоступные адреса настроено):bind_ip = "0.0.0.0"
или использовать любой адрес, на который настроен ваш компьютер; запустите
ipconfig /all
в консоли, чтобы увидеть конфигурацию вашей сети.Возможно, вы также не хотите использовать порты & lt; 1024; они зарезервированы для процессов, работающих только с правами root. Вам нужно будет выбрать большее число, чем это, если вы хотите запустить непривилегированный процесс (и в большинстве программ обучения, это именно то, что вы хотите):
port = 5021 # arbitrary port number higher than 1023
Я считаю, что конкретные вы используете следующие функции
BIND_IP = '0.0.0.0'
иBIND_PORT = 9090
.