0
私はアンドロイドでUDPブロードキャストを実行できます。クライアントはIPアドレスを送信することが期待されます。同じネットワーク上で3〜4台のクライアントが稼働している場合、私はただ1台のクライアントの応答を受信しています。 すべてのクライアントからの返信を受信したいと考えています。ここでは、クライアントから送信されたデータを受信するブロードキャスタコードがあります。アンドロイドでUDPパケットを受信
public class Scan4Activity extends Activity {
TextView tv;
int i=-1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i("ggrerrrrrrrggg", "hhaqaaaaaaaaaaahhhhhhh");
setContentView(R.layout.main);
//String[] b=;
try {
Log.i("ggggg", "hhhhhhhhh");
String modifiedSentence="received!!!:)";
main(null);
Toast.makeText(getApplicationContext(), modifiedSentence, Toast.LENGTH_LONG).show();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("FROM SERVER:error");
e.printStackTrace();
}
}
public void main(String args[]) throws Exception
{
DatagramSocket clientSocket = new DatagramSocket();
InetAddress IPAddress = InetAddress.getByName("255.255.255.255");
byte[] sendData = new byte[1024];
String sentence = "hello";//inFromUser.readLine();
sendData = sentence.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 16789);
clientSocket.send(sendPacket);
while(true){
byte[] receiveData = new byte[1024];
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
clientSocket.receive(receivePacket);
String modifiedSentence = new String(receivePacket.getData());
Toast.makeText(getApplicationContext(), modifiedSentence, Toast.LENGTH_SHORT).show();
System.out.println("FROM SERVER:" + modifiedSentence);
try{
clientSocket.close();
}
catch(Exception e){
System.err.println("Cannot Close the Socket");
}
}
}
だから助けてください。
いいえ2g/3gネットワークでテストしていませんが、WIFIでテストしています...私は255.255.255.255を使用して放送しています。 – ragz