Я могу запустить сервер на своем локальном компьютере и подключиться к нему на том же компьютере, но когда я пытаюсь подключиться к нему с другого компьютера через Интернет, на моем сервере нет никаких признаков активности или ответа от сервера. на компьютере, на котором я его тестирую. Я пробовал и XP, и Vista, отключил брандмауэры, открыл порты, запустил от имени администратора; ничего не работает. :(
Вот мой код, который я использую для приема входящего соединения:
int port = 3326;
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
TcpListener listener = new TcpListener(new IPEndPoint(IPAddress.Any, port));
listener.Start();
Console.WriteLine("Server established\nListening on Port: {0}\n", port);
while (true)
{
socket = listener.AcceptSocket();
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, outime);
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);
socket.DontFragment = true;
NewConnection pxy = new NewConnection(socket);
Thread client = new Thread(new ThreadStart(pxy.Start));
client.IsBackground = true;
client.Start();
}
}




Если вы пытаетесь разместить у себя дома, возможно, ваш провайдер ограничивает вас.
Я думаю, что проблема в вашем роутере, а не в вашем компьютере. Когда пакеты приходят из Интернета, они должны быть перенаправлены на определенный сервер. Вам необходимо настроить маршрутизатор для перенаправления трафика через порт 3326 на ваш сервер.
Возможно, у вас что-то блокирует соединение наверху. Попробуйте подключиться с другого хоста в локальной сети. Если вы можете это сделать, то сама ОС не защищает соединение.
Если вы или ваш интернет-провайдер используете NAT-маршрутизатор, то ваш компьютер, вероятно, не имеет общедоступного адреса, и в этом случае невозможно подключиться к нему напрямую.
Если маршрутизатора NAT нет, возможно, что-то все еще блокирует восходящее соединение.
Я серьезно: Многие интернет-провайдеры активно работают с останавливаться, чтобы вы не использовали домашнее соединение в качестве веб-сервера. Возможно, вы захотите вызвать им, прежде чем потратите слишком много времени.
Я могу подключиться через другой хост в локальной сети, могу ли я использовать свой маршрутизатор для перенаправления порта на серверную машину. Я помню, как некоторое время назад я размещал VOIP-сервер - Teamspeak и ventrilo в моей локальной сети, который был доступен через Интернет, могу ли я сделать что-то подобное с этим?