Korzystając z tutoriala Oracla:
http://download.oracle.com/javase/tutorial/networking/sockets/readingWriting.html
próbuję utworzyć echo socket.
Kod:
import java.io.*;
import java.net.*;
public class EchoClient {
public static void main(String[] args) throws IOException {
Socket echoSocket = null;
PrintWriter out = null;
BufferedReader in = null;
try {
System.out.println("A");
echoSocket = new Socket("192.168.1.5", 7);
System.out.println("B");
out = new PrintWriter(echoSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(
echoSocket.getInputStream()));
} catch (UnknownHostException e) {
System.err.println("Don't know about host: 192.168.1.5.");
System.exit(1);
} catch (IOException e) {
System.err.println("Couldn't get I/O for "
+ "the connection to: 192.168.1.5.");
System.exit(1);
} catch(SecurityException e){
System.err.println("Security");
System.exit(1);
}
System.out.println("połączono");
BufferedReader stdIn = new BufferedReader(
new InputStreamReader(System.in));
String userInput;
while ((userInput = stdIn.readLine()) != null) {
out.println(userInput);
System.out.println("echo: " + in.readLine());
}
out.close();
in.close();
stdIn.close();
echoSocket.close();
}
}
Gdzie 192.168.1.5 jest lokalnym IP w mojej sieci. Program po wydrukowaniu "A" w linii 15 zawiesza się, nie drukując już "B".
Co jest nie tak?