Android TCP/IP (Wifi) サーバーで作業しています。サーバーソケットは正しくセットアップされていますが (私はそう思います)、accept 関数を呼び出すとアプリがクラッシュします。カタログには、未処理の受け入れがありますが、例外をキャッチします。少なくとも、そうすると思います。
以下は私の 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