Witam. Mam mały problem z poprawnym wysłaniem komunikatu tcp w Javie.
Posiadam napisany serwer (w c#) do którego może podłączyć się wiele klientów. Autoryzacja odbywa się poprzez wysłanie komunikatu "NazwaKlientapusty:".
Posiadam również klienta napisanego w c#, który poprawnie komunikuje się z serwerem oraz bezbłędnie jest przez niego autoryzowany.
klient = new TcpClient(serwerIP, port_serwera);
NetworkStream ns = klient.GetStream();
pisanie = new BinaryWriter(ns);
pisanie.Write(TwojeIP + ":HI:" + "pusty:");
```
Takim kodem wysyłam dane do serwera aby dokonać autoryzacji w c#. W przypadku Javy próbuje to zrobić następująco :
System.out.println("Łączenie");
Socket clientSocket = new Socket("192.168.0.102", 8081);
System.out.println("Połączono");
String wiadomosc = "192.168.0.102:HI:";
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
System.out.println("Wyslano " + wiadomosc );
out.print(wiadomosc);
out.close();
clientSocket.close();
W wyniku tego na ekranie w javie dostaję :
Łączenie
Połączono
Wyslano Ja
Jednak w serwerze występuje w tym momencie wyjątek "Nie można odczytać danych spoza stumienia"
obiektTCP.setTcpClient();
NetworkStream ns = obiektTCP.getStream();
BinaryReader czytanie = new BinaryReader(ns);
string dane = czytanie.ReadString(); // w tej linijce!!!
Dodam że klient c# nie powoduje takiego wyjątku (coś musi być nie tak z wysyłaniem w javie)