0

SocketServerを使用してサーバーをセットアップしようとしていました

int i =1, PORT = 6666;
ServerSocket server;
Socket client;
try {
    server = new ServerSocket(6666);
    for(;;){
        client = server.accept();//fail in here
        textView.setText("server accept..." + i);
        //new MyHttpServer(client, i, PORT).start();
        i++;
    }
} catch (IOException e) {
    // TODO Auto-generated catch block
    //e.printStackTrace();
    textView.setText("Fail...");
}

ただし、アプリは常にで停止しserver.accept()ます。私はすでにこのアプリのインターネット許可を追加しました。どうしてか分かりません?

更新:理由を見つけました。これは、スレッドがアクティブインスタンスから開始できないためです。スレッドなしでonStartにserver.accept()を入れました。今、私はそれのために新しいRunnableを開き、それから修正しました

4

2 に答える 2

1

アプリケーションがサーバーを起動できない理由は複数考えられます。私の最初の推測では、エミュレーターまたはデバイスでコードを実行しようとしていて、すでにそのポートでリッスンしている他のアプリケーションがあります。

logcatエラーの原因を突き止めるには、トレースを確認/提供する必要があります。

于 2012-12-27T09:59:50.213 に答える
0

あなたのアプリはポート6666のクライアントを待つと思います。

 server.accept();// return socket

上記のコードは、クライアントが利用可能な場合にソケットを返します。詳細と明確さについては、次のリンクを参照してください。

http://www.happygeek.in/socket-programming-in-android

http://www.edumobile.org/android/android-development/socket-programming/

于 2012-12-27T10:20:08.563 に答える