-1

常に実行され、ソケットからのメッセージをリッスンする Android サービスを作成しています。しかし、それは良いパフォーマンスでは機能せず、nio の代替またはチュートリアルを探しています。

常にソケットをリッスンするための最良の方法は何ですか?

AndroidAsync は標準ソケットをサポートしていますか? https://github.com/koush/AndroidAsync

Apache Mina を使用している人はいますか? ミナの性格に問題あり。http://mina.apache.org/

または、標準ソケットを使用してこの仕事を良いパフォーマンスで行うにはどうすればよいですか

体験お待ちしております。

ありがとう

4

2 に答える 2

-1

を使用して文字列を書き込むための便利なメソッドがいくつかありますjava.nio

private static Charset charset;
static
{
    charset = Charset.forName("UTF-8");
}

public static void writeString(SocketChannel sc, String string) throws IOException {
    CharBuffer c = CharBuffer.wrap(string);
    ByteBuffer b = charset.encode(c);
    b.compact();
    b.flip();
    sc.write(b);
}

public static String readString(SocketChannel sc) throws IOException {
    ByteBuffer bbuf = ByteBuffer.allocate(8096);
    sc.read(bbuf);
    bbuf.flip();
    CharBuffer cbuf = charset.decode(bbuf);
    return cbuf.toString();
}

接続を確立するだけで、必要なSocketChannelだけ使用できます。java.nio慣れればそれほど難しいことではありません:)

于 2013-08-17T16:33:09.767 に答える