0

我正在开发一个通过 TCP 套接字连接到 java 服务器的应用程序。由于某种原因,客户端/应用程序一直卡在 //HERE。

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;

import android.util.Log;

class ClientConnectToServer
{Socket clientSocket;

      public ClientConnectToServer()
     { try {
        clientSocket = new Socket("10.0.2.2", 9000);
    } catch (UnknownHostException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

      public String sendMessage(String message)
      {
try{        clientSocket = new Socket("10.0.2.2", 9000);

          String modifiedSentence;
          DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
          BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
          outToServer.writeBytes(message + '\n');
          modifiedSentence = inFromServer.readLine();
          outToServer.close();
          inFromServer.close();
              //HERE
          clientSocket.close();
          Log.v(modifiedSentence, modifiedSentence);
          return modifiedSentence;}
catch(Exception e)
{
    return "";}

      }
}

谢谢你的帮助。

4

1 回答 1

1

不可能。此时,由于先前的两次关闭,套接字已经关闭,因此该行代码无需执行任何操作。由于某种原因,您更有可能在日志记录行被阻止。

关闭套接字时,您应该关闭输出流或围绕其输出流包装的写入器。这会刷新它并关闭输入流和套接字。不要关闭其他任何东西。

于 2012-07-15T00:06:50.173 回答