1

AndroidをサーバーとIPおよび対応するポートに接続する最良の方法は何ですか? この接続は常に必要というわけではありませんが、ファイルを (バイト配列またはストリームで) 送受信すると想定しています。

ありがとう

4

1 に答える 1

7

Android 開発ツールは Java にネイティブであるため、単純な Java Socket API を使用してこの目標を達成できます ( ServerSocketおよびSocketを参照)。

サーバーコード

ServerSocketリッスンするポートを定義して、ホスト コンピューターで を開くことから始める必要があります。

ServerSocket ss = new ServerSocket([some_port]);

次に、 を呼び出して、クライアントのリッスンを開始する必要がありますss.accept()。このメソッドは、クライアントが接続するまでブロックします:

Socket my_socket = ss.accept();

これで、サーバーにソケットができました。これを好きなように操作できます (おそらく と を使用しますObjectInputStream) ObjectOutputStream

ObjectOutputStream out = new ObjectOutputStream(my_socket.getOutputStream());
ObjectInputStream in= new ObjectInputStream(my_socket.getInputStream());

クライアントコード

作成したばかりのサーバーとの接続を確立する必要があります。これを行うには、ソケットを初期化し、サーバーの IP アドレス (ほとんどのテスト目的では通常 localhost) とサーバーが現在リッスンしているポート番号を渡します。

Socket socket = new Socket("localhost", [some_port]);

ここでも、通信用のストリームをいくつか確立します。

ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
ObjectInputStream in = new ObjectInputStream(socket.getInputStream());

そして、あなたはそれを持っています!Android デバイスからサーバーと簡単に通信できるようになりました。思ったよりずっと簡単です。

ただし、このアーキテクチャは TCP を実装することに注意してください。TCP は UDP よりもはるかに低速であり、ペースの速いデータ集約型のゲームでは機能しませんが、上記の説明を考慮して目標を達成する必要があります。

于 2012-11-06T06:29:10.827 に答える