2012-01-24 6 views
0

Androidアプリケーションをプログラミングしているので、同じローカルネットワークに接続されている端末間でメッセージを送信できます。私はソケットプログラミングの作業を終えました。各デバイスはサーバまたはクライアントになります。クライアントは一度に1つのサーバにしか接続できません(またその逆もあります)。問題は、接続したいサーバのIPアドレスを知り、それをクライアント側で手で入力する必要があることです。Android Socket-ready検出ですか?

私はゲームのマルチプレイヤーモードのような機能を確立しようとしています:「表示」ボタンを押すと、利用可能なすべてのホスト(私のアプリではサーバーです)が表示されます。私が欲しいホスト。しかし、私はそれを達成するためのアイデアや、どこから始めるべきかを知りません。

ご協力いただければ幸いです。どうもありがとうございました!

答えて

1

ブロードキャストに使用するDatagramSocketも別のポートで作成し、Serverになりたいすべてのデバイスは、そのパケットをIPでブロードキャストする必要があります。ブロードキャストの例は含まれていませんが、All about Datagramsをご覧ください。たとえば、ブロードキャストを送信する場合は、次のコードをご覧ください。

DatagramSocket mServerSocket = new DatagramSocket(PORT); 
InetAddress broadcastAddress=InetAddress.getByName("255.255.255.255"); 
byte[] data=new byte[1024]; 
data="your_data_string_example".getBytes(); 
DatagramPacket packet=new DatagramPacket(sendData, 
          sendData.length,broadcastAddress,PORT); 
mServerSocket.setBroadcast(true); 
mServerSocket.send(packet); 
+0

ありがとうございました。私はそれを今作った。グループipが224で始まるべきちょっとした問題(私のように224.2.72.0)。私はネットワークプログラミングについて強くないので、私はこれを理解していません(マルチキャストアドレスではないもの)。私はこのアプリケーションを終了した後にそれを見てみましょう。 –

関連する問題