当前位置: 首页 > 知识库问答 >
问题:

Socket AsyncTask不记录套接字。代码中未连接的值

柳英豪
2023-03-14

我有以下代码,以便在android中执行异步任务,以便连接到套接字。

调用异步任务是

new SocketAsyncTask().execute("abc");

导入android.os.AsyncTask;导入android.util.日志

导入java。io。IOException;导入java。网插座

公共类SocketAsyncTask扩展了AsyncTask{

private static String connectionURL ="MY_URL" ;
private static int port = 3000;

@Override
protected Void doInBackground(String... uri) {
     try {
         String sentence;
         String modifiedSentence;
         Socket clientSocket = new Socket(connectionURL, port);
         Log.d("In socket",clientSocket.isConnected() + "");

         if (clientSocket.isConnected()) {
             Log.d("Client connection Successfull!!", "true");
             //System.out.print("Connection Successfull!!");
         } else {
             //System.out.print("Connection Not Successfull!!");
             Log.d("Client connection not Successfull!!", "true");
         }
        /*DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
        BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
        sentence = inFromUser.readLine();
        outToServer.writeBytes(sentence + '\n');
        modifiedSentence = inFromServer.readLine();
        System.out.println("FROM SERVER: " + modifiedSentence);*/
         clientSocket.close();
     }catch (IOException exp) {

     }
 return null;
}

}

输出确实打印了“在套接字”字符串,但是它不会记录“客户端连接成功”或“客户端连接不成功”。我尝试调试它,但它基本上做了一些奇怪的事情。它在logcat中打印“在套接字”,但似乎不会在该断点停止。

共有1个答案

申屠锦
2023-03-14

首先记录isConnect()是没有意义的。如果构造函数没有抛出异常,则套接字已连接。isConnect()测试在您测试它的时候不可能是错误的。

这里的问题是您忽略了异常,您应该记录它。

 类似资料:
  • 我在Python中使用套接字制作聊天应用程序,但当我尝试从不同的计算机连接时,它会说: C:\用户\James\OneDrive\Documents\Python\Projects\Gui聊天\client.pyw[WinError 10060]连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机没有响应 这是套接字的服务器代码: 我还有一个循环接受所有请求: 在客

  • 请帮我找出问题所在。我太过分了,请帮我解决这个问题

  • 问题内容: 如何创建SSL套接字连接? 我真的需要创建密钥库吗?该密钥库应该与我所有的客户端应用程序共享吗? 我用以下代码创建了一个服务器: 我用以下代码在android上创建了一个客户端: 但是当我尝试连接时,会引发以下错误: 问题答案: 您需要一个证书来建立ssl连接,您可以在密钥库中加载证书,也可以加载证书本身。我将显示一些有关keystore选项的示例。 您的代码需要一些参数才能运行: 您

  • 线程“main”java.net.ConnectException:连接超时:在java.net.dualStackplainsockeTimpl.Connect0(本机方法)在java.net.dualStackplainsockeTimpl.socketConnect(DualStackplainsockeTimpl.java:69)在java.net.abstractplainsockeTi

  • 问题内容: 我正在加密服务器和客户端之间的TCP连接。在研究和测试过程中,我倾向于使用秘密密钥加密。我的问题是我找不到有关如何实现此功能的任何教程。我发现的教程围绕一次HTTP请求进行,我只需要一个SSL套接字。 我到目前为止编写的代码如下。我几乎可以肯定它需要扩展,我只是不知道该怎么做。任何帮助表示赞赏。 接受客户端连接的服务器代码 我只是不知道如何实际进行握手。 参考:http : //doc