Próbuję zrobić prosty program klient-serwer. Serwer ma obsługiwać dwóch klientów i ma to działać tak:
klient 1 wysyła komunikat do serwera, a serwer wysyła ten komunikat do klienta 2
klient 2 wysyła komunikat do serwera, a serwer wysyła ten komunikat do klienta 1
Oto metoda odpowiadająca za odbieranie i przesyłanie danych:
private DataOutputStream[] output = new DataOutputStream[2];
private DataInputStream[] input = new DataInputStream[2];
public void odbierzWyslij() {
int dane = 0, numerOdbiorcy = 0;
if (liczbaKlientow == 2) {
for (int i = 0; i < liczbaKlientow ; i++) {
try {
dane = input[i].readInt();
} catch (IOException e) {
e.printStackTrace();
}
try {
if (i == 1) numerOdbiorcy = 0;
else if (i == 0) numerOdbiorcy = 1;
output[numerOdbiorcy].writeInt(dane);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}</i>
Problem mam z tym że trzeba najpierw coś wysłać by można było odbierać. Jak zrobić żeby wysyłanie nie blokowało odbioru?