Dzięki za wyjaśnienie sprawy. Tworzę dalej, no mam kolejny problem.
W aplikacji klienta mam przycisk, który wysyła do serwera tekst, serwer ma odpowiedzieć i klient ma wyświetlić odpowiedź.
Gdy korzystam z telnetu to wszytko wygląda jak trzeba, ale w moim kliencie coś nie hasa.
W kliencie tworzę obiekt OutputStream output i wysyłam tekst. Rzeczywiście wysyła, bo w serwerze widzę taką informację. Jednak zaraz po tym klient tworzy obiekt InputStream input i BufferedReaderem czytam netLine(), ale w tym miejscu program się zawiesza i nic się nie dzieje.
Tutaj fragment, o którym mówię:
// w ramce:
// ...
JButton btnOdwierzDane = new JButton("Od\u015Bwierz dane");
btnOdwierzDane.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
OutputStream output = client.socket.getOutputStream();
PrintWriter printWriter = new PrintWriter(output, false);
printWriter.print("o:\n");
printWriter.flush();
// TODO nie odbiera
InputStream input = client.socket.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(input));
String line;
String text = new String("");
while((line = bufferedReader.readLine()) != null) {
text += line;
}
textPane.setText(text);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
btnOdwierzDane.setBounds(227, 273, 158, 23);
contentPane.add(btnOdwierzDane);
// ...
Piszę w Eclipse, tutaj cały projekt: http://dl.dropbox.com/u/25023639/lab04_01.zip
Zastanawiam się, czy może logicznie coś namieszałem? Wydaje mi się, że właściwie wykorzystuję gniazdka, ale coś musi być źle.