public class Multicastsender implements Runnable{

@Override
public void run() {
// TODO Auto-generated method stub
MulticastSocket ms;
try {
ms = new MulticastSocket();
ms.setTimeToLive(3);
String msg = "from..";
while (true) {
   
InetAddress ia = InetAddress.getByName("224.0.1.1");
Log.d("UDP","2");
DatagramPacket data = new DatagramPacket(msg.getBytes(),
msg.getBytes().length, ia, 3000);
Log.d("UDP","3");
ms.send(data);
//Thread.sleep(10);
Log.d("UDP","4");
Log.d("UDP","in while");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

이렇게 쓰레드로 만들어서 보내는 데요... ms.send(data)부분에서 더이상 진행이 안되네요...

아래는 서버 입니다.

public class MulticastListenerThread implements Runnable {
/**
* Constructor for a listener thread
* @param ip
*            multicast ip address to listen on
* @param port
*            port to bind to
*/
MulticastSocket socket = null;
boolean failed = false;
int payloadSize = 256;

public MulticastListenerThread(String ip, int port) {
try {
Log.d("UDP","1");
socket = new MulticastSocket(port);
Log.d("UDP","2");
socket.joinGroup(InetAddress.getByName(ip));
Log.d("UDP","3");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (IOException e) {
System.out.println("MulticastSocket creation failed");
failed = true;
}
}
@Override
public void run() {
// TODO Auto-generated method stub
byte[] buf = new byte[16 + payloadSize];
DatagramPacket datagram = new DatagramPacket(buf, buf.length);
// int remainingPackets = -1;
Log.d("UDP","4");
while (true) {
//Utility.fillNulls(buf);
datagram.setData(buf);
try {
Log.d("UDP","5");
socket.receive(datagram);
Log.d("UDP","6");
Log.d("UDP",buf.toString());
} catch (IOException e) {
e.printStackTrace();
}
socket.close();
}
}
}

public class MulticastSocketServerActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        WifiManager wifi = (WifiManager)getSystemService( Context.WIFI_SERVICE );
        MulticastLock mcLock = wifi.createMulticastLock("mylock");
        mcLock.acquire();
        
        MulticastListenerThread m = new MulticastListenerThread("224.0.1.1",3000);
        try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
        new Thread(m).start();
        mcLock.release();
        setContentView(R.layout.main);
    }
}

뭐 이런식인데 서버는 조인 그룹에서 더이상 진행이 안되고요 ..
로그에 2까지만 찍혀요 클라이언트는 3까지만 찍히고요..

기기는 오드로이드로 adhoc모드로 연결해서 하고 있고요...

권한은

 <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" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />

이렇게 추가해주었고요..

잘안되서 권한도 추가해주고.. 위에서 굵게 표시한 것들도 추가해주고 했는데 이게 마음같지가 않네요..

당연히 된다고 나와있는 예제에 있는 매쏘드만 써서 구현하는게 안되니 참 답답하네요..

조언부탁드립니다.