问题描述
我想问的MulticastSocket上采用的是Android 2.3的支持?
我的Java服务器上的一个模块。此服务器将发送uninterprupted信息。我有一个模块的Android客户端(模拟器的虚拟设备)。我将首先启动Android客户端为它等待接收服务器的信息,然后我会开始Java服务器发送信息。最后,我想我的仿真器可以接收来自Java服务器信息。 PS:我会成功,如果2个模块是所有Java
这是我的服务器模块(很简单)结果
公共类服务器{结果 公共服务器()抛出IOException异常,InterruptedException的{结果 DatagramSocket的插座=新的DatagramSocket();结果 字节[] B =新的字节[1024];结果 DatagramPacket类DGRAM =新的DatagramPacket(B,b.length个,InetAddress.getByName结果
(239.0.0.1),5000);
通信System.err.println(发送+ b.length个+字节+ dgram.getAddress()+:+搜索
dgram.getPort());
而(真){结果 System.err.print(。);结果 socket.send(DGRAM);结果 视频下载(1000);结果 }结果 }结果}结果
这是我的Android模拟器(也很简单)结果
公共类ClientForm扩展活动{结果
私人的EditText edcontentview;结果
@Override结果
公共无效的onCreate(捆绑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(真);结果
_wifiMulticastLock.acquire();结果
新主题(新的Runnable接口(){结果
@Override结果
公共无效的run(){结果
字节[] B =新的字节[1024]结果
最后DatagramPacket类DGRAM =新的DatagramPacket(B,b.length个);结果
MulticastSocket多插座= NULL;结果
尝试{结果
插座=新的MulticastSocket(5000);结果
socket.joinGroup(InetAddress.getByName(239.0.0.1));结果
}赶上(IOException异常五){结果
e.printStackTrace();结果
}结果
而(真){结果
尝试{结果
socket.receive(DGRAM);结果
视频下载(1000);结果
}赶上(IOException异常五){结果
e.printStackTrace();结果
}赶上(InterruptedException的E){结果
e.printStackTrace();结果
}结果
新的处理程序()。后(新的Runnable(){结果
@Override结果
公共无效的run(){结果
结果; edcontentview.append(从字节+ dgram.getAddress()获得+ dgram.getLength()+)
}结果
});结果,
dgram.setLength(b.length个);结果
}结果
}结果
})开始();结果
}结果
}结果
Yes.Isnt的的你要找的东西?
I would like to ask that MulticastSocket is supported in android 2.3?
I have a module on Java Server. This server will send information uninterprupted. And I have a module Android Client (on emulator virtual device). I will start android client first for it to wait to receive server's information Then I will start Java server to send information. Finally I wanna my emulator can receive info from java server. PS: I will be successful if 2 modules are all java.
This is my server module (very simple)
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);
}
}
}
This is my android emulator (also very simple)
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();
}
}
Yes.Isnt this what you were looking for ?
这篇关于MulticastSocket多的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!