我想從我的android發送一些數據通過WiFi連接到外部傳感器。雖然我能夠通過UDP連接將數據從傳感器發送到android,但我無法做到相反。其中數據被髮送的代碼下面的一個:通過UDP發送數據從android到外部傳感器
public void onClick(View v) {
Thread t = new Thread(){
@Override
public void run(){
while(true){
int server_port = 12345;
byte[] message = "1".getBytes();
System.out.println(message.toString());
try {
InetAddress local = InetAddress.getByName("255.255.255.255");
DatagramPacket p = new DatagramPacket(message,message.length,local,server_port);
DatagramSocket s = new DatagramSocket();
s.send(p);
s.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
};
t.start();
}
正如你可以在上面看到,一個按鈕的OnClick,我希望應用程序通過UDP發送數據。問題是,當我嘗試這樣做時,發生此錯誤:
11-24 16:10:13.335: W/System.err(8077): java.net.SocketException: sendto failed: ENETUNREACH (Network is unreachable)
11-24 16:10:13.335: W/System.err(8077): at libcore.io.IoBridge.maybeThrowAfterSendto(IoBridge.java:506)
11-24 16:10:13.335: W/System.err(8077):at libcore.io.IoBridge.sendto(IoBridge.java:475)
11-24 16:10:13.335: W/System.err(8077):at java.net.PlainDatagramSocketImpl.send(PlainDatagramSocketImpl.java:182)
11-24 16:10:13.335: W/System.err(8077): at java.net.DatagramSocket.send(DatagramSocket.java:284)
11-24 16:10:13.343: W/System.err(8077): at com.example.waspmoteagriculture.MainActivity$3$1.run(MainActivity.java:97)
11-24 16:10:13.343: W/System.err(8077): Caused by: libcore.io.ErrnoException: sendto failed: ENETUNREACH (Network is unreachable)
11-24 16:10:13.343: W/System.err(8077): at libcore.io.Posix.sendtoBytes(Native Method)
11-24 16:10:13.343: W/System.err(8077): at libcore.io.Posix.sendto(Posix.java:151)
11-24 16:10:13.343: W/System.err(8077): at libcore.io.BlockGuardOs.sendto(BlockGuardOs.java:177)
11-24 16:10:13.343: W/System.err(8077): at libcore.io.IoBridge.sendto(IoBridge.java:473)
11-24 16:10:13.343: W/System.err(8077): ... 3 more
我已經包含網絡權限。另外我應該提到,傳感器連接到android的wifi熱點,以便將信息發送到手機。我不知道這樣接收數據是否有問題。
是否有任何問題的代碼或是這個錯誤有關的不同?先謝謝你。
我已經包含了訪問網絡的權限,即使在鏈接中使用代碼後,我仍然得到相同的錯誤,可能是傳感器(客戶端)接收數據包還是連接已正確建立? – 2014-11-25 08:17:42
我還應該提到傳感器已連接到android的wifi熱點。不知道是否有問題... – 2014-11-25 08:50:08