Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.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
Android套接字创建失败_Android_Sockets - Fatal编程技术网

Android套接字创建失败

Android套接字创建失败,android,sockets,Android,Sockets,我有这个方法来启动一个插座连接,这样我就可以在我的电脑和手机之间聊天了。我的电脑上已经有一个服务器正在等待Android的连接 private void connectToServer() throws IOException { showMessage("Starting Connection..."); connection = new Socket(InetAddress.getByName(serverIP), 0511); sho

我有这个方法来启动一个插座连接,这样我就可以在我的电脑和手机之间聊天了。我的电脑上已经有一个服务器正在等待Android的连接

private void connectToServer() throws IOException
    {
        showMessage("Starting Connection...");
        connection = new Socket(InetAddress.getByName(serverIP), 0511);
        showMessage("\n Connection Established: "+connection.getInetAddress().getHostName());
    }
这是我运行它时遇到的错误:

03-08 19:02:36.847: E/AndroidRuntime(2524): FATAL EXCEPTION: main
03-08 19:02:36.847: E/AndroidRuntime(2524): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jister13.chattest/com.jister13.chattest.ChatRoom}: android.os.NetworkOnMainThreadException
03-08 19:02:36.847: E/AndroidRuntime(2524):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2088)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2113)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at android.app.ActivityThread.access$700(ActivityThread.java:139)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1224)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at android.os.Looper.loop(Looper.java:137)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at android.app.ActivityThread.main(ActivityThread.java:4918)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at java.lang.reflect.Method.invokeNative(Native Method)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at java.lang.reflect.Method.invoke(Method.java:511)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at dalvik.system.NativeStart.main(Native Method)
03-08 19:02:36.847: E/AndroidRuntime(2524): Caused by: android.os.NetworkOnMainThreadException
03-08 19:02:36.847: E/AndroidRuntime(2524):     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1118)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at libcore.io.IoBridge.connect(IoBridge.java:112)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at java.net.Socket.startupSocket(Socket.java:565)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at java.net.Socket.<init>(Socket.java:225)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at com.jister13.chattest.ChatRoom.connectToServer(ChatRoom.java:88)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at com.jister13.chattest.ChatRoom.startRunning(ChatRoom.java:74)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at com.jister13.chattest.ChatRoom.onCreate(ChatRoom.java:69)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at android.app.Activity.performCreate(Activity.java:5048)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
03-08 19:02:36.847: E/AndroidRuntime(2524):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2052)
03-08 19:02:36.847: E/AndroidRuntime(2524):     ... 11 more
03-08 19:02:36.847:E/AndroidRuntime(2524):致命异常:main
03-08 19:02:36.847:E/AndroidRuntime(2524):java.lang.RuntimeException:无法启动活动组件信息{com.jister13.chatterst/com.jister13.chatter.chattroom}:android.os.NetworkOnMainThreadException
03-08 19:02:36.847:E/AndroidRuntime(2524):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2088)
03-08 19:02:36.847:E/AndroidRuntime(2524):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2113)
03-08 19:02:36.847:E/AndroidRuntime(2524):在android.app.ActivityThread.access$700(ActivityThread.java:139)
03-08 19:02:36.847:E/AndroidRuntime(2524):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1224)
03-08 19:02:36.847:E/AndroidRuntime(2524):在android.os.Handler.dispatchMessage(Handler.java:99)上
03-08 19:02:36.847:E/AndroidRuntime(2524):在android.os.Looper.loop(Looper.java:137)
03-08 19:02:36.847:E/AndroidRuntime(2524):位于android.app.ActivityThread.main(ActivityThread.java:4918)
03-08 19:02:36.847:E/AndroidRuntime(2524):位于java.lang.reflect.Method.Invokenactive(本机方法)
03-08 19:02:36.847:E/AndroidRuntime(2524):位于java.lang.reflect.Method.invoke(Method.java:511)
03-08 19:02:36.847:E/AndroidRuntime(2524):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
03-08 19:02:36.847:E/AndroidRuntime(2524):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
03-08 19:02:36.847:E/AndroidRuntime(2524):在dalvik.system.NativeStart.main(本机方法)
03-08 19:02:36.847:E/AndroidRuntime(2524):由以下原因引起:android.os.NetworkOnMainThreadException
03-08 19:02:36.847:E/AndroidRuntime(2524):在android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1118)
03-08 19:02:36.847:E/AndroidRuntime(2524):在libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)上
03-08 19:02:36.847:E/AndroidRuntime(2524):在libcore.io.IoBridge.connecterno(IoBridge.java:127)
03-08 19:02:36.847:E/AndroidRuntime(2524):在libcore.io.IoBridge.connect(IoBridge.java:112)上
03-08 19:02:36.847:E/AndroidRuntime(2524):位于java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
03-08 19:02:36.847:E/AndroidRuntime(2524):位于java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
03-08 19:02:36.847:E/AndroidRuntime(2524):位于java.net.Socket.startupSocket(Socket.java:565)
03-08 19:02:36.847:E/AndroidRuntime(2524):位于java.net.Socket(Socket.java:225)
03-08 19:02:36.847:E/AndroidRuntime(2524):在com.jister13.chatterst.ChatRoom.connectToServer(ChatRoom.java:88)
03-08 19:02:36.847:E/AndroidRuntime(2524):位于com.jister13.chatterst.chattroom.startRunning(chattroom.java:74)
03-08 19:02:36.847:E/AndroidRuntime(2524):在com.jister13.chatterst.ChatRoom.onCreate(ChatRoom.java:69)
03-08 19:02:36.847:E/AndroidRuntime(2524):在android.app.Activity.performCreate(Activity.java:5048)上
03-08 19:02:36.847:E/AndroidRuntime(2524):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)上
03-08 19:02:36.847:E/AndroidRuntime(2524):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2052)
03-08 19:02:36.847:E/AndroidRuntime(2524):。。。还有11个

有人知道可能是什么问题吗?

阅读包含在抛出的异常中的错误

原因:android.os.NetworkOnMainThreadException

它引发了一个异常,因为您试图在主UI线程上执行网络操作。在Android中,您必须在UI线程之外完成任何耗时的任务(联网、数据库访问、冗长的数字处理等)


您需要在一个单独的非UI线程上执行此操作。

当您搜索该错误时,StackOverflow上的数百个匹配问题中是否有任何一个对您没有帮助?那么我该怎么做呢?因为我现在不知道该怎么做。请阅读关于在单独线程上执行网络功能的教程。AsyncTask教程可能是一个良好的开端。说真的,你不必装傻,你需要在这里多帮点忙,做些研究和学习。只有当你已经付出了一些努力,但你仍然被卡住时,才可以询问StackOverflow。