У меня следующая проблема.
Я пытаюсь реализовать систему P2P, используя протокол UDP для передачи и получения файлов.Моя главная проблема связана с коммуникациями.Когда я пытаюсь установить механизм приема однорангового узла, он вызывает следующее исключение:
java.net.BindException: Address already in use
Хотя я исследовал порты, которые использовал, с помощью этой команды (в Mac OS X):
sudo lsof -Pn | grep "insert port number here"
И я понял, что все используемые мной порты абсолютно свободны.
Вот мой ошибочный код:
Создание сервера:
while(!serverReady){
this.appOutputObj.serverInitializationFailed();
boolean correctData = this.requestingData();
//ERROR: In this if condition!
if(correctData){
serverReady = this.appEngine.initializeEngineServer();
System.out.println(serverReady);
if(serverReady)
break;
}
}
public boolean initializeServer(){
try {
this.residentServer = new Server(5001, 5002, this.mcAddress, this.dataPort, this.controlPort);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
public Server(int dataPort, int controlPort, InetAddress newMcAddress, int mcDataPort, int mcControlPort) throws SocketException{
this.dataPort = dataPort;
this.controlPort = controlPort;
this.dataDatagramSocket = new DatagramSocket(this.dataPort); //<-- Line with exception raising.
this.controlDatagramSocket = new DatagramSocket(this.controlPort);
this.mcAddress = newMcAddress;
this.mcDataPort = mcDataPort;
this.dataMST = new MulticastServerThread(this.dataPort, this.mcAddress, this.mcDataPort);
this.controlMST = new MulticastServerThread(this.controlPort, this.mcAddress, this.mcControlPort);
this.dataMST.start();
this.controlMST.start();
}
Есть какое-нибудь решение для этого?