मैं मोबाइल से यूडीपी मल्टीकास्ट पैकेट भेजने के लिए एंड्रॉइड एप्लिकेशन बना रहा हूं।यूडीपी मल्टीकास्टिंग मोबाइल से पीसी
यह मेरा मोबाइल अनुप्रयोग के लिए कोड है:
यह AndroidManifest.xml
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
DeviceManagerWindow.java
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;
public class DeviceManagerWindow extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_device_manager_window);
WifiManager wifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);
if(wifi != null)
{
WifiManager.MulticastLock lock = wifi.createMulticastLock("WifiDevices");
lock.acquire();
}
Thread sendMulticast = new Thread(new MultiCastThread());
sendMulticast.start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.device_manager_window, menu);
return true;
}
}
इस फ़ाइल में उपयोगकर्ता की अनुमति है भेजता बहुस्त्र्पीय पैकेट:
,210MultiCastThread.java
public class MultiCastThread implements Runnable
{
MulticastSocket s;
DatagramPacket pack;
public MultiCastThread()
{
try
{
s = new MulticastSocket(WifiConstants.PORT_NO);
s.joinGroup(InetAddress.getByName(WifiConstants.GROUP_ADDR));
}
catch(Exception e)
{
Log.v("Socket Error: ",e.getMessage());
}
}
@Override
public void run()
{
try
{
pack = new DatagramPacket(WifiConstants.WHO_IS.getBytes(),WifiConstants.WHO_IS.getBytes().length, InetAddress.getByName(WifiConstants.GROUP_ADDR), WifiConstants.PORT_NO);
s.setTimeToLive(WifiConstants.TIME_TO_LIVE);
s.send(pack);
}
catch(Exception e)
{
Log.v("Packet Sending Error: ",e.getMessage());
}
}
}
WifiConstants.java
इस फ़ाइल में वाईफ़ाई इंटरेक्शन के लिए स्थिरांक का रिकॉर्ड रखता है।
public class WifiConstants
{
public static final int PORT_NO = 5432;
public static final String GROUP_ADDR = "225.4.5.6";
public static final int DGRAM_LEN = 1024;
public static final String WHO_IS = "Who is?";
public static final int TIME_TO_LIVE = 1;
}
मेरे सिस्टम पर मैं पैकेट प्राप्त करने और कंसोल में प्रिंट करने के लिए जावा कोड चला रहा हूं।
ListenerDevice.java
package Receiver;
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;
public class ListenerDevice
{
public static final int PORT_NO = 5432;
public static final String GROUP_ADDR = "225.4.5.6";
public static final int DGRAM_LEN = 1024;
public static final String WHO_IS = "Who is?";
public static final int TIME_TO_LIVE = 1;
public static void main(String[] args)
{
MulticastSocket socket = null;
DatagramPacket inPacket = null;
byte[] inBuf = new byte[DGRAM_LEN];
try
{
//Prepare to join multicast group
socket = new MulticastSocket(PORT_NO);
InetAddress address = InetAddress.getByName(GROUP_ADDR);
socket.joinGroup(address);
while(true)
{
System.out.println("Listening");
inPacket = new DatagramPacket(inBuf, inBuf.length);
socket.receive(inPacket);
String msg = new String(inBuf, 0, inPacket.getLength());
System.out.println("From :" + inPacket.getAddress() + " Msg : " + msg);
}
}
catch(Exception ioe)
{
System.out.println(ioe);
}
}
}
मैं नहीं जानता कि क्या गलत मैं किसी भी उत्पादन नहीं मिल रहा है है। कृपया मदद करें। मैंने कई ट्यूटोरियल देखा और उन्होंने कहा कि प्रत्येक चरण का पालन किया।