Беды в розетках - PullRequest
       13

Беды в розетках

0 голосов
/ 11 апреля 2011

Когда я запустил сервер и клиент, сервер не может получить слова, набранные в клиенте. Я надеюсь, что сервер показывает сообщения от клиента. Но сервер, казалось, завис на "bf.readLine ()". Я не знаю почему ... следуя кодам ...

Код сервера:

ServerSocket ss = new ServerSocket(11111);
System.out.println("current port:"+ss.getLocalPort());
Socket s = ss.accept();

System.out.println("remote port:"+s.getPort());

BufferedReader bf = new BufferedReader(new InputStreamReader(s.getInputStream()));

while(true)
{
    String str = bf.readLine();
    System.out.print(s.getPort()+": ");
    System.out.println(str);
    if ("bye".equals(str))
        break;
}

, а затем код клиента:

Socket s = new Socket("127.0.0.1",11111);
System.out.println("connected to remote server:"+s.getPort());
System.out.println("My port:"+s.getLocalPort());

PrintWriter pw = new PrintWriter(s.getOutputStream());
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));

Scanner in = new Scanner(System.in);

while (true)
{
    System.out.print("I said: ");
    String l = in.next();

    pw.write(l);
    pw.flush();
    System.out.println("Echo~~~~"+l);
}

1 Ответ

4 голосов
/ 11 апреля 2011

Вы пишете байты с помощью write (), но читаете с readln (). Readln требует "\ n" в конце.

...