)를 통해 장치의 소켓에서 데이터를 수신 할 수 없습니다. 내 안드로이드 장치가 내 무선 네트워크에 연결되어 있습니다. 또한 특별한 UDP 장치가 연결되어 있습니다. 내 안드로이드 애플 리케이션은 성공적으로 UDP 장치에 명령을 보낼 수 있습니다. 하지만 소켓을 열면 데이터를받지 못합니다. 무엇이 잘못되었는지 보시겠습니까?UDP (
public static final String SERVERIP = "192.168.2.114";
public static final int PORT = 44444;
public void run() {
try {
serverAddr = InetAddress.getByName(SERVERIP);
DatagramSocket socket = new DatagramSocket();
byte[] buf = message.toByteArray();
DatagramPacket packet = new DatagramPacket(buf, buf.length, serverAddr, PORT);
socket.send(packet);
socket.close();
} catch (Exception e) {
Log.e("UDP", "Sender/Client: Error", e);
}
}
I 데이터 수신을위한 두 가지 방법이있는 반면 :
public static final String SERVERIP = "192.168.2.114";
public static final int SERVERPORT = 44445;
private InetAddress serverAddr;
public void run() {
try {
InetAddress serverAddr = InetAddress.getByName(SERVERIP);
DatagramSocket socket = new DatagramSocket(SERVERPORT, serverAddr);
byte[] buf = new byte[65213];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
} catch (Exception e) {
Log.e("UDP", "Receiver: Error", e);
}
try {
serverAddr = InetAddress.getByName(SERVERIP);
DatagramChannel channel = DatagramChannel.open();
DatagramSocket socket = channel.socket();
byte[] buf = new byte[65213];
DatagramPacket packet = new DatagramPacket(buf, buf.length, serverAddr, SERVERPORT);
socket.receive(packet);
socket.close();
} catch (Exception e) {
Log.e("UDP", "Sender/Client: Error", e);
}
}
을 나는 여기에
작업 응용 프로그램이 명령을 전송하는 방법입니다 아이폰-APP에서 UDP-장치의 IP를 알고
java.net.BindException: Cannot assign requested address
at org.apache.harmony.luni.platform.OSNetworkSystem.bind(Native Method)
at dalvik.system.BlockGuard$WrappedNetworkSystem.bind(BlockGuard.java:268)
at org.apache.harmony.luni.net.PlainDatagramSocketImpl.bind(PlainDatagramSocketImpl.java:81)
at java.net.DatagramSocket.createSocket(DatagramSocket.java:193)
at java.net.DatagramSocket.<init>(DatagramSocket.java:95)
at de.myappname.connection.Receiver.run(Receiver.java:29)
at java.lang.Thread.run(Thread.java:1019)
번째 AP :
첫 번째 시도 블록의 접근은 예외 리드 proach는 데이터를 수신하지 않는 socket.receive (packet)에 의해 스레드를 차단합니다. 아이폰과 사양에서 장치가 WLAN을 통해 UDP 44445를 통해 데이터를 전송한다는 것을 알고 있습니다. 어떤 제안이 잘못 되었나요? 감사합니다.
마지막으로 해결책을 찾았습니다. http://code.google.com/p/boxeeremote/wiki/AndroidUDP – softwaresupply