Android 2.3支持MulticastSocket嗎?Android 2.3支持MulticastSocket嗎?
我在Java服務器上有一個模塊。該服務器將發送未中斷的信息。我有一個模塊Android客戶端(仿真器虛擬設備)。我將首先啓動android客戶端,以便它等待接收服務器的信息然後我將啓動Java服務器來發送信息。最後我想我的模擬器可以從java服務器接收信息。 PS:如果2個模塊都是java,我會成功的。
這是我的服務器模塊(很簡單)
public class Server {
public Server() throws IOException, InterruptedException{
DatagramSocket socket = new DatagramSocket();
byte[] b = new byte[1024];
DatagramPacket dgram = new DatagramPacket(b, b.length,InetAddress.getByName
("239.0.0.1"), 5000);
System.err.println("Sending "+b.length+" bytes to "+dgram.getAddress()+':'+
dgram.getPort());
while(true) {
System.err.print(".");
socket.send(dgram);
Thread.sleep(1000);
}
}
}
這是我的Android模擬器(也很簡單)
public class ClientForm extends Activity {
private EditText edcontentview;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.clientform);
edcontentview = (EditText)findViewById(R.id.edtcontentview);
MulticastLock _wifiMulticastLock = ((WifiManager)this.getSystemService(Activity.WIFI_SERVICE)).createMulticastLock("_wifiMulticastLock");
_wifiMulticastLock.setReferenceCounted(true);
_wifiMulticastLock.acquire();
new Thread(new Runnable(){
@Override
public void run() {
byte[] b = new byte[1024];
final DatagramPacket dgram = new DatagramPacket(b, b.length);
MulticastSocket socket = null;
try {
socket = new MulticastSocket(5000);
socket.joinGroup(InetAddress.getByName("239.0.0.1"));
} catch (IOException e) {
e.printStackTrace();
}
while(true) {
try {
socket.receive(dgram);
Thread.sleep(1000);
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
new Handler().post(new Runnable() {
@Override
public void run() {
edcontentview.append("Received " + dgram.getLength() + " bytes from " + dgram.getAddress());
}
});
dgram.setLength(b.length);
}
}
}).start();
}
}
我不知道。我不能用它來創建一個通過MulticastSocket發送信息給客戶端(Android模擬器)的服務器(PC)。但是當我運行在Java上時,沒關係。我不知道發生了什麼事。如果有人知道。請將代碼發佈到演示(PC和android模擬器模塊)。 – smalltalk 2011-01-10 12:44:34