Я пытаюсь создать программу для распределенной системы. На данный момент у меня есть поток для прослушивания подключений, поток для отправки и поток для приема.Работает только в режиме отладки
У меня проблема с подключением клиента, но только при использовании контрольных точек. Я не могу понять проблему вообще !. Я пытался реализовать вещи, чтобы замедлить работу программы, но ничто не работает.
Если вы, ребята, можете взглянуть, я был бы очень благодарен.
public static void main(String[] args)
{
System.out.println("Server starting on port 5000");
RecievingConnection reciever = new RecievingConnection(5000,0); //Recieving Connection
reciever.start();
SendingConnection sender = new SendingConnection(5001,1); //Sending Connection
sender.start();
while(true){
while(reciever.ready==true){
System.out.println("In");
nodes first = new nodes(reciever.socket,0);
System.out.println("Node created");
first.start();
System.out.println("Client connected on port: " + reciever.socket.getLocalAddress());
nodes second = new nodes(sender.socket,1);
second.start();
reciever.ready=false;
sender.ready=false;
reciever.connectionComplete=true;
sender.connectionComplete=true;
}
}
}
public RecievingConnection(int port, int mode)
{
Serverport = port;
connectionMode = mode;
try{
server = new ServerSocket(port);
server.setSoTimeout(100000);
}
catch(IOException ex)
{
System.out.println(ex);
}
}
public void run(){
while(true){
if(ready == false){
try {
socket = server.accept();
ready = true;
System.out.println("Attempting to connect using port: " + Serverport);
while(connectionComplete == false){
//wait
}
} catch (IOException ex) {
System.out.println(ex);
}
}
}
}
Передающий поток в основном тот же код. Любая идея, в чем проблема? «Узлы» - это поток для каждого узла.
Кажется, вам нужна правильная синхронизация между вашими нитями. В качестве отправной точки я предлагаю учебник по потоковому использованию Oracle. –
Будет ли поток ждать, пока основной поток не сообщит об этом после создания узлов? –