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