服务器到客户端的通信客户端无法从服务器接收消息

时间:2019-05-29 17:47:17

标签: java socket.io client-server serversocket

Both are the pictures of the output我正在一个POC上,服务器将向客户端发送多条消息,并且客户端应接收到该消息并打印该消息。 但是服务器正确发送了邮件,但客户端无法接收。

我已经尝试过for循环10次迭代,而while将终止,然后客户端从服务器接收消息。

这两个都是类:

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的一部分,因此服务器永远不会停止并且将始终发送消息,这可能会有些延迟,但是会从循环中发送消息。

除了接收服务器端发送的所有消息外,我都是这样。

我在服务器上使用冲洗尝试添加另一组图像后,我希望将其输出为非金字塔类型的单个字符串。例如,第一次迭代将发送“ Hello1”。因此它应接收“ Hello1”不是那个金字塔。This is the image after adding flush method after write in Server.

0 个答案:

没有答案