Я пишу код для сервера, который помог бы двум разным приложениям на разных платформах общаться друг с другом. Чтобы визуализировать это немного, это будет примерно так:
App1 <------> Сервер <------> App2
Что сервер делает, так это выдает var1 из app2, записывает его в app1, затем читает var2 из app1 и записывает в app2. Как это:
while(true){<br>
var1 = app2stream.readInt();<br>
app1stream.writeInt(var1);<br>
var2 = app1stream.readDouble();<br>
app2stream.writeDouble(var2);<br>
}
Моя проблема в том, что в какой-то момент у меня есть этот код на моем сервере:
app1.accept();<br>
app2.accept();
Это означает, что независимо от того, что и с учетом того факта, что сервер всегда работает, app1 - это тот, который должен подключаться первым, поскольку app1.accept () является методом блокировки.
Есть ли способ обойти это? Было бы здорово разрешить двум приложениям подключаться к серверу независимо от того, кто «пришел» первым, а затем ждать, пока сервер продолжит выполнение вышеуказанного кода. Могу ли я использовать потоки только для части accept (), а затем передать потоки другому потоку? Я немного читал о каналах, но меня это немного озадачило, любые примеры были бы хороши.