Связь сервера с клиентом Клиент не может получать сообщения от сервера - PullRequest
0 голосов
/ 29 мая 2019

Both are the pictures of the output Я работаю в POC, где Сервер отправит клиенту несколько сообщений, а Клиент должен получить сообщение и распечатать его.Но сервер отправляет сообщение должным образом, но клиент не может его получить.

Я уже пробовал использовать цикл for в течение 10 итераций, а время завершится, и тогда клиент получит сообщения от сервера.

Здесьоба класса:

import java.net.*;
import java.io.*;

public class Client {

public static void main(String gg[]){

try{

Socket socket  = new Socket("localhost",8080);

System.out.println("Client Started...");

InputStream is = socket.getInputStream();

InputStreamReader isr = new InputStreamReader(is);

StringBuffer sb = new StringBuffer();
 int x;

while(true){

x = isr.read();

if(x=='\n'){
break;

}

sb.append((char)x);

System.out.println("Readable Message: "+sb);
}

}catch(Exception e){

e.printStackTrace();

}

}


}

    import java.net.*;
    import java.io.*;

    public class Server {

    public static void main(String gg[]){

    try{

    ServerSocket ss = new ServerSocket(8080);

    Socket socket = ss.accept();

    System.out.println("Server Started...");

    OutputStream os = socket.getOutputStream();

    OutputStreamWriter osw = new OutputStreamWriter(os);

    String message = "Hello";
    int i=1;
    while(true){
    osw.write(message+i);
    osw.flush();
    System.out.println("Server written.:"+message+i);
    Thread.sleep(200);
    i++;
    }    
    }catch(Exception e){
    e.printStackTrace();

    }

    }

    }

Вот сообщение об ошибке от клиента, когда я остановил сервер.

C:\harsh\java\book2>java Client
Client Started...
java.net.SocketException: Connection reset
        at java.base/java.net.SocketInputStream.read(SocketInputStream.java:210)
        at java.base/java.net.SocketInputStream.read(SocketInputStream.java:141)
        at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
        at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
        at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
        at java.base/sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:127)
        at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:112)
        at java.base/java.io.InputStreamReader.read(InputStreamReader.java:168)
        at Client.main(Client.java:23)

Итерация на сервере возросла до 100, когда я остановил сервер.

Поскольку это часть POC, согласно которой сервер никогда не остановится и всегда будет посылать сообщения, возможно, возможна некоторая задержка, но он будет отправлять сообщение из цикла.

I, за исключением его дляполучать все сообщения, отправленные со стороны сервера.

Я добавляю еще несколько наборов изображений после того, как попробовал его с промывкой на сервере, на который я хочу выводить одну строку не в виде пирамиды. Например, для первой итерацииотправляет «Hello1». Так что он должен получить «Hello1» не та пирамида. This is the image after adding flush method after write in Server.

...