Tak, wiem było o tym tysiące tematów w internecie, a ja znowu to wyciągam...
Uprzedzając wasze pytania i docinki tak skorzystałem z google i doc.
Po prostu już się pogubiłem, zgłupiałem i potrzebuję pomoc kogoś doświadczonego kto by mnie poprowadził.
Piszę w celach edukacyjnych program na komunikację z serwerem. Program wykorzystuje XMLSocket i korzysta z protokołu TCP do początkowego porozumiewania się, potem przechodzi na SSL, ale co to, jak to robi itd. będę męczył się potem ;)
Problem polega na tym, że nie wiem jak zgrać server z moim clientem.
Nawiązuję z serverem połączenie w TCP, wysyłam do niego pewien String i w zmian otrzymuję liczbę 60, powinienem natomiast dostać w odpowiedzi inny String... Myślałem że źle tworzę wiadomość XML, ale to raczej nie to bo z nasłuchu pakietów wynika że serwer wysyła do mnie odpowiedź, niestety program jej nie słyszy.
Nie mam pojęcia w czym jest problem.
Porównałem wiadomości wysyłane przez oryginalnego clienta i mojego, różniły się:
- portem na którym odbierały, ale między sobą też sie tym różniły
- długością wysyłanej wiadomości - u mnie są to 62 znaki, a tam 63
Jednak jak wspominałem otrzymuję odpowiedź, jednak jej nie odbieram.
Tutaj kod odpowiedzialny za tworzenie wiadomości:
String xml = "<policy-file-request/>";
out.write(xml.getBytes());
out.write((byte)0);
Tutaj kod odpowiedzialny za odbieranie(?):
InputStream inFromServer = client.getInputStream();
DataInputStream in =
new DataInputStream(inFromServer);
System.out.println("Message from server: " + in.read());//odebrana wiadomość
client.close();
Kod jest umieszczony bezpośrednio po kodzie odpowiedzialnym za wiadomość :)
A tak wygląda nawiązanie połączenia:
Socket client = new Socket(serverName, port);
Mam nadzieję że wszystko dobrze rozpisałem, jeżeli nie to przepraszam i jak najszbciej postaram się uzupełnić temat.