0
Android 앱과 서버간에 UDP 패킷을 계속 보내고 받으려고합니다.Android에서 UDP 패킷을 수신합니다.
이렇게 할 수있는 방법이 있습니까?
현재 네트워킹 코드 (스레드로 실행 중)는 다음과 같습니다. 클라이언트는 3G를 통해 연결됩니다. 포트 구성 클라이언트 측은 1088입니다.
서버는 수신시 패킷을 클라이언트에 반향시킵니다. 서버는 클라이언트에서 패킷을 올바르게 수신하지만 클라이언트는 아무것도 수신하지 않습니다.
InetAddress serverAddr = InetAddress.getByName(SERVERIP);
Log.d(TAG, "S: Connecting...");
DatagramSocket socket = new DatagramSocket();
DatagramSocket receive_socket = new DatagramSocket(SERVERPORT, InetAddress.getByName("0.0.0.0"));
while(running) {
DatagramPacket packet_send = new DatagramPacket(msg, msg.length, serverAddr, SERVERPORT);
Log.d(TAG, "C: Sending: '" + new String(msg) + "'");
socket.send(packet_send);
// Prepare a UDP-Packet that can contain the data we want to receive
DatagramPacket packet = new DatagramPacket(buf, buf.length);
Log.d(TAG, "S: Receiving...");
// Receive the UDP-Packet
receive_socket.receive(packet);
Log.d(TAG, "S: Received: '" + new String(packet.getData()) + "'");
synchronized (this) {
wait(500);
}
}
3G 연결이 NATed라고 생각됩니다 (서버가 1088과 다른 포트를보고합니다). 그렇다면이를 극복하기 위해 할 수있는 일이 있습니까? 아니면 코드에 문제가 있습니까?
서버 코드는 Twisted UDP Echo 예제입니다. http://twistedmatrix.com/documents/current/core/howto/udp.html#auto1 – aberaud
서버에서 다음을 인쇄합니다.> 'Hello from Client'from 213.55.xx .xx : 6854 – aberaud
그냥 생각 -하지만 그것은 안드로이드 권한과 관련이 있을까요? – stephendwolff