【问题标题】:Unable to read data sent from socket server in java无法读取从 Java 中的套接字服务器发送的数据
【发布时间】:2016-11-02 17:27:31
【问题描述】:

我想在 android 设备和 java 服务器之间进行通信。 服务器端:

    ServerSocket serverSocket = new ServerSocket(port);
    Socket socket = serverSocket.accept();
    OutputStream out = socket.getOutputStream();
    PrintStream pw = new PrintStream(out);
    pw.print("hello");
    pw.flush();                       
    socket.close();

Android 客户端:

   public class connectTask extends Thread {
    @Override
    public void run() {
        super.run();
            while (true) {
                try {
                Socket socket = new Socket("192.168.0.101", 4444);
                InputStream inputStream = socket.getInputStream();
                BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
                String line = reader.readLine();
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        textView.setText(line);
                    }
                });
                socket.close();
                } catch (IOException e) {                     
            }}}}

并以这种方式启动线程:

 thread = new Thread(new connectTask());
 thread.start();

问题是我无法从 java 服务器获取任何东西。我发送或接收数据错误,我不知道是什么问题,我在这里做错了什么?

【问题讨论】:

  • 客户端应用程序是否出现异常(打印 IOException)。
  • 我在 catch 块中使用了 printStackTrace() 方法,没有打印任何内容,还添加了 catch(Exception e) 块,也没有捕获任何东西

标签: java android sockets serversocket


【解决方案1】:

您的代码看起来不错(可能是String line = ... 应该是final String line = ...)并且需要检查服务器的IP 地址和端口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-03
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-29
    相关资源
    最近更新 更多