我正在使用Android TCP / IP(Wifi)服务器。服务器插座设置正确(我认为),但是当我调用accept函数时,应用程序崩溃了。在Catlog中,有一个未处理的接受,但是我发现了一个例外,至少我认为是这样。

下面是我的TCPIP类,出现问题的方法称为setupserver。我在接受之前看到打印出来的内容,但是在接受之后看不到。有人有主意吗?欢迎所有来宾!请让我知道我需要提供更多信息

    public void RunServer(int PortNumber){
    // Try to setup server with given port number
    try {
        ServerSocket = new ServerSocket(PortNumber);
        System.out.println("Server set up");
    }
    catch (IOException e) {
        Log.e("TCPIPCommunicator", "failed to setup server", e);
        e.printStackTrace();
    }

    // Wait for connection from client
    try {
        System.out.println("Before accept");
        ClientSocket = ServerSocket.accept();
        System.out.println("Ater accept");

    }
    catch (IOException e) {
        Log.e("TCPIPCommunicator", "failed to accept", e);
        e.printStackTrace();
    }


    while(true){

        //Send data

        //Recieve data

    }
}


该目录显示以下内容:

10-31 16:37:55.653:I / System.out(14525):服务器设置
10-31 16:37:55.653:I / System.out(14525):接受之前
10-31 16:37:55.653:D / AndroidRuntime(14525):关闭VM
10-31 16:37:55.653:W / dalvikvm(14525):threadid = 1:线程以未捕获的异常退出(group = 0x411df2a0)
10-31 16:37:55.653:E / AndroidRuntime(14525):致命异常:主
10-31 16:37:55.653:E / AndroidRuntime(14525):java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.communicationmodule / com.example.communicationmodule.MainActivity}:android.os.NetworkOnMainThreadException

最佳答案

绝对不要在活动构造函数中启动服务器。 Here是很好地打开套接字的示例。

08-28 01:52