Java无法获得客户端或服务器响应

吉罗

我来自波兰,对我的任何错误深表歉意。
当我停止烦人的问题时,我已经为小型服务器和客户端连接编写了一段时间。当我从客户端向服务器发送信息(字符串)时,服务器可以获取它,但无法对其进行响应。

这是代码。

客户

private static Socket socket;

public static void main(String args[]){
    try{
       String host = "localhost";
       int port = 25002;
       InetAddress address = InetAddress.getByName(host);
       socket = new Socket();
       socket.connect(new InetSocketAddress(host, port), 5000);

       //Send the message to the server
       System.out.println("< "+sendMessage(socket));
       //socket.shutdownOutput();
       System.out.println("> "+getMessage(socket));
   }catch (SocketTimeoutException e){
      System.out.println(e.getMessage()); // changed
   }catch (IOException e){
      System.out.println(e.getMessage()); // changed
   }catch (IllegalBlockingModeException e){
      System.out.println(e.getMessage()); // changed
   }catch(IllegalArgumentException e){
      System.out.println(e.getMessage()); // changed
   }finally{
      //Closing the socket
      try{
         socket.close();
      }catch(Exception e){
         System.out.println(e.getMessage()); // changed
      }
   }
}

public static String sendMessage(Socket client){
    try {
        String message = "test";
        PrintWriter writer = new PrintWriter(client.getOutputStream(), true);
        writer = new PrintWriter(client.getOutputStream(), true);
        writer.print(message);
        writer.flush();
        writer.close();
        return message;
     } catch (IOException e) {
        System.out.println(e.getMessage()); // changed
        return "false";
     }
}

public static String getMessage(Socket client){
            try {
                BufferedReader socketReader = new BufferedReader(new InputStreamReader(client.getInputStream()));
                return socketReader.readLine();
            } catch (IOException e){
                System.out.println(e.getMessage()); // changed
                return "false";
            }
        }

和..服务器

public class kRcon{
        private static Socket socket;
        private static ServerSocket serverSocket;
        private static Thread u;

        private static class Server extends Thread {
                public void run() {
                        int port = 25002;
                        try {
                            serverSocket = new ServerSocket(port);
                        } catch (IOException e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        }
                        while(true) {
                          try {
                             socket = serverSocket.accept();
                             BufferedReader socketReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                             BufferedWriter socketWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
                             String str = socketReader.readLine();
                        socketReader.close();
                             System.out.println(str);
                             socketWriter.write("test");
                             socketWriter.flush();
                             socketWriter.close();
                          }
                        }catch (IOException e1) {
                            e1.printStackTrace();
                        }
               }
         public static void init(){
         try {
            u = new Server();
            u.setName("Server");
            u.start();
        } catch (IOException e) {
            System.out.println(e.getMessage()); // changed
        }
    }
}

结果
如果我先启动服务器,一切看起来都很好。因此,我使用参数“ test”启动客户端,输出到控制台的nad是:

< test
Socket is closed // changed

在控制台的服务器端,我有:

"test"
Socket is closed // changed

我试图关闭输入和输出,但无法正常工作..我现在不知道该怎么做。请帮忙:c

编辑于2015-04-03,
我更改了注释为“ changed”的行。

对于Google和读者来说,要解决问题,请不要关闭客户端的StreamReaders nad和StreamWriters。感谢EJP的帮助!
来自波兰的问候。

用户名

收到异常后,将其打印出来。不要只是丢掉所有这些信息。而且也不返回魔术Strings在这种情况下,应该让异常传播。如果您做了所有的一切,您将看到SocketException: socket closed抛出的异常,getMessage(),并且您将需要进行一些具体的调查,而不是一个完整的谜。

这是由于关闭PrintWriterin导致的。关闭sendMessage().一个套接字的输入或输出流会关闭另一个流和该套接字。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何模拟服务器响应-服务器端客户端

来自分类Dev

Java Socket为什么服务器无法回复客户端

来自分类Dev

Java客户端/服务器套接字程序-服务器不响应客户端请求

来自分类Dev

Java客户端服务器应用程序,无法发送ArrayList

来自分类Dev

服务器无法向客户端发送消息

来自分类Dev

hazelcast客户端无法连接到服务器

来自分类Dev

WCF服务返回“不良”响应-客户端获得的数据与服务器发送的数据不同

来自分类Dev

OpenSSL:服务器无法验证客户端证书

来自分类Dev

无法在Java服务器和Android客户端之间建立连接

来自分类Dev

Javascript客户端无法连接到Java服务器

来自分类Dev

在服务器关闭连接之前,客户端不会收到响应消息(Java)

来自分类Dev

网状客户端无法读取非网状服务器响应

来自分类Dev

无法将客户端服务器与Websockets连接

来自分类Dev

phpmailer,客户端不响应服务器

来自分类Dev

客户端如何等待服务器响应

来自分类Dev

ldap客户端无法联系ldap服务器

来自分类Dev

客户端服务器无法通信

来自分类Dev

C ++套接字客户端/服务器服务器不响应客户端

来自分类Dev

无法从Java套接字服务器接收数据到C套接字客户端

来自分类Dev

服务器无法从客户端Java接收文本

来自分类Dev

将Json从android客户端发布到服务器并获得响应

来自分类Dev

无法在python客户端中解密Java服务器发送的Blob

来自分类Dev

Java SSL客户端-服务器:无法找到有效的证书

来自分类Dev

Java TCP 服务器无法接收来自多个客户端的消息

来自分类Dev

Python 服务器和客户端无法通信

来自分类Dev

Winsock 客户端和服务器无法连接

来自分类Dev

接收服务器对客户端请求的响应

来自分类Dev

Java Script & Socket IO:无法从客户端向服务器发出值以操作服务器上的变量

来自分类Dev

客户端无法获取服务器响应

Related 相关文章

  1. 1

    如何模拟服务器响应-服务器端客户端

  2. 2

    Java Socket为什么服务器无法回复客户端

  3. 3

    Java客户端/服务器套接字程序-服务器不响应客户端请求

  4. 4

    Java客户端服务器应用程序,无法发送ArrayList

  5. 5

    服务器无法向客户端发送消息

  6. 6

    hazelcast客户端无法连接到服务器

  7. 7

    WCF服务返回“不良”响应-客户端获得的数据与服务器发送的数据不同

  8. 8

    OpenSSL:服务器无法验证客户端证书

  9. 9

    无法在Java服务器和Android客户端之间建立连接

  10. 10

    Javascript客户端无法连接到Java服务器

  11. 11

    在服务器关闭连接之前,客户端不会收到响应消息(Java)

  12. 12

    网状客户端无法读取非网状服务器响应

  13. 13

    无法将客户端服务器与Websockets连接

  14. 14

    phpmailer,客户端不响应服务器

  15. 15

    客户端如何等待服务器响应

  16. 16

    ldap客户端无法联系ldap服务器

  17. 17

    客户端服务器无法通信

  18. 18

    C ++套接字客户端/服务器服务器不响应客户端

  19. 19

    无法从Java套接字服务器接收数据到C套接字客户端

  20. 20

    服务器无法从客户端Java接收文本

  21. 21

    将Json从android客户端发布到服务器并获得响应

  22. 22

    无法在python客户端中解密Java服务器发送的Blob

  23. 23

    Java SSL客户端-服务器:无法找到有效的证书

  24. 24

    Java TCP 服务器无法接收来自多个客户端的消息

  25. 25

    Python 服务器和客户端无法通信

  26. 26

    Winsock 客户端和服务器无法连接

  27. 27

    接收服务器对客户端请求的响应

  28. 28

    Java Script & Socket IO:无法从客户端向服务器发出值以操作服务器上的变量

  29. 29

    客户端无法获取服务器响应

热门标签

归档