小编TMI*_*TMI的帖子

DatagramSocket.bind(); 套接字异常:无法分配请求的地址.Android模拟器

我是Android和Java的新手,所以如果我的问题在不适当的小组或论坛上被问到,请原谅.我为我的公司制作了一个.Net应用程序,最近他们让我在Android上移植它,以便在三星Galaxy Tabs上安装它.

首先,我使用Eclipse,JDK 6,目标平台android 2.2和使用GalaxyTab插件的模拟器.我的操作系统是Windows 7.

此应用程序使用UDP向网络上的某个控制器发送和接收消息.简而言之,我的应用程序使用"DatagramSocket",将其绑定到本地"InetSocketAddress",然后启动一个侦听数据报的线程,而另一个线程根据用户的请求向控制器发送请求.这是一些代码片段:

这是我分配本地地址和套接字的地方:

try {
     loc_addr = new InetSocketAddress(
       Inet4Address.getByAddress(
              new byte[]{(byte) 192,(byte) 168,1,(byte)240}), 0xBAC0); 
       //192.168.1.240 is the IP of my machine on the network
} catch (UnknownHostException e) {
     .......
}
try {
     soc = new DatagramSocket();
     soc.setReuseAddress(true);
     soc.setBroadcast(true);
     soc.bind(loc_addr);
} catch (SocketException e) {
     .......
}
Run Code Online (Sandbox Code Playgroud)

这是我收听传入数据报的地方:

try{
     buf = new byte[1024];
     receive_pac = new DatagramPacket(buf, 1024);
     soc.receive(receive_pac);
     if (receive_pac.getData() != null){
     .......
     }
}
Run Code Online (Sandbox Code Playgroud)

这是我发送数据的地方:

try {
    addr = (Inet4Address) Inet4Address.getByAddress (new …
Run Code Online (Sandbox Code Playgroud)

sockets android udp android-emulator

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×1

android-emulator ×1

sockets ×1

udp ×1