Это мой первый вопрос, я постараюсь дать как можно больше информации.
На моем компьютере установлена локальная установка Apache 2.2. У меня по умолчанию привязка к порту 100 (не спрашивайте меня, почему). Когда я запускаю Apache, я не могу создать сервер сокетов с портом 100, потому что этот порт уже используется. Я хочу продублировать эту функцию на Java-сервере, который я пишу.
В настоящее время я создаю сервер сокетов следующим образом:
ServerSocket srv = new ServerSocket(100);
Проблема в том, что это не мешает другим приложениям использовать этот порт. Я могу запустить более одной копии моего Java-приложения или даже запустить мой сервер Apache после этого. Я хочу, чтобы сокет java Server Socket имитировал поведение Apache и блокировал привязку других приложений к выбранному порту.
Я попытался использовать Google, и единственное, что я смог найти, это http://www.dreamincode.net/forums/topic/124376-block-port/, что подразумевает, что создание сервера сокетов, как показано выше, должно блокировать использование порта в других приложениях.
Я использую Windows 7 Ultimate-64bit, IDE NetBeans 6.9.1 и Java 1.6.0_23.
Спасибо, пользователь 658991,
Похоже, что порт не будет заблокирован, пока клиент не подключится или пока я не вызову ServerSocket.accept ();
try
{
ServerSocket server = new ServerSocket(12345);
System.out.println("Socket Server Established on port " + server.getLocalPort());
server.accept(); // Code Stops here until connection is completed.
// Do Stuff
}
catch(IOException e)
{
System.out.println("Socket Server Connection Failed!");
System.out.println(e);
System.exit(-1);
}