Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用套接字和异步任务强制关闭_Java_Android_Sockets_Tcp_Android Asynctask - Fatal编程技术网

Java 使用套接字和异步任务强制关闭

Java 使用套接字和异步任务强制关闭,java,android,sockets,tcp,android-asynctask,Java,Android,Sockets,Tcp,Android Asynctask,大家好,斯塔克的人 请看下面我的班级代码和日志 当我试图连接时,有一股力量靠近了我。如果有人能帮我找出原因,我将不胜感激 基本上,代码所做的是: 从目的地获取IP地址 使用端口32连接到IP 然后发送一个命令,等待响应并发送另一个命令 在我们发送了两个命令之后,我应该得到“SNX_COM>的响应” 建立连接后,我希望连接保持打开状态,以便在单击按钮时发送特定命令 请帮忙:) 我认为你的问题在于: InetAddress serverAddr = InetAddress.getByName(se

大家好,斯塔克的人

请看下面我的班级代码和日志

当我试图连接时,有一股力量靠近了我。如果有人能帮我找出原因,我将不胜感激

基本上,代码所做的是:

  • 从目的地获取IP地址
  • 使用端口32连接到IP
  • 然后发送一个命令,等待响应并发送另一个命令
  • 在我们发送了两个命令之后,我应该得到“SNX_COM>的响应”
  • 建立连接后,我希望连接保持打开状态,以便在单击按钮时发送特定命令
  • 请帮忙:)


    我认为你的问题在于:

     InetAddress serverAddr = InetAddress.getByName(serverIpAddress);
     socket = new Socket(serverAddr, REDIRECTED_SERVERPORT);
    

    我找不到您的
    serverIpAddress
    被分配到哪里,因此您会得到NullPointerException。

    out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()),true);in=新的BufferedReader(新的InputStreamReader(socket.getInputStream());看到我的答案我相信你的错误是因为你的插座没有正确启动。请查看更新的LogCat,今天不是我的日子…………嗨,Slezadav,是的,你是正确的。但还是有一股力量在逼近。请查看更新的LogCat。现在您的问题出现在第51行,我猜是这个.pd=ProgressDialog.show(这个“正在加载…”,“请稍候…”,true,false);请尝试将其删除一段时间。或者更可能的情况是,当您旋转屏幕时,会发生崩溃,因为活动正在重新创建,而ProgressDialog正在泄漏。@chrisjameshanchocks Chris。很明显,您的代码存在多个问题,我怀疑您试图在走路之前先运行,这可以从您在不了解基本知识的情况下尝试使用高级技术得到证明。请允许我恭敬地建议,更好地利用每个人的时间,尤其是您的时间,让您了解引起nullPointerException的原因,如何在logcat中找到确切的源代码,以及如何调试和修复它。如果没有这些基本技能,您将继续感到沮丧,并可能最终得到效率低下、难以维护的代码。祝你好运。@Simon你好,Simon,是的,在我能走路之前,我一定要跑。我想我会直接跳到最深处,希望一切都好。不过,我正在慢慢取得进展。
    12-03 15:39:56.346: E/AndroidRuntime(2697): FATAL EXCEPTION: AsyncTask #5
    12-03 15:39:56.346: E/AndroidRuntime(2697): java.lang.RuntimeException: An error occured while executing doInBackground()
    12-03 15:39:56.346: E/AndroidRuntime(2697):     at android.os.AsyncTask$3.done(AsyncTask.java:299)
    12-03 15:39:56.346: E/AndroidRuntime(2697):     at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
    12-03 15:39:56.346: E/AndroidRuntime(2697):     at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
    12-03 15:39:56.346: E/AndroidRuntime(2697):     at java.util.concurrent.FutureTask.run(FutureTask.java:239)
    12-03 15:39:56.346: E/AndroidRuntime(2697):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
    12-03 15:39:56.346: E/AndroidRuntime(2697):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
    12-03 15:39:56.346: E/AndroidRuntime(2697):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    12-03 15:39:56.346: E/AndroidRuntime(2697):     at java.lang.Thread.run(Thread.java:856)
    12-03 15:39:56.346: E/AndroidRuntime(2697): Caused by: java.lang.NullPointerException
    12-03 15:39:56.346: E/AndroidRuntime(2697):     at com.smarte.smartipcontrol.IPControl$AsyncAction.doInBackground(IPControl.java:71)
    12-03 15:39:56.346: E/AndroidRuntime(2697):     at com.smarte.smartipcontrol.IPControl$AsyncAction.doInBackground(IPControl.java:1)
    12-03 15:39:56.346: E/AndroidRuntime(2697):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
    12-03 15:39:56.346: E/AndroidRuntime(2697):     at java.util.concurrent.FutureTask.run(FutureTask.java:234)
    12-03 15:39:56.346: E/AndroidRuntime(2697):     ... 4 more
    
     InetAddress serverAddr = InetAddress.getByName(serverIpAddress);
     socket = new Socket(serverAddr, REDIRECTED_SERVERPORT);