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