2011-12-17 1 views
2

서버가 Android 및 PC의 클라이언트에서 실행되도록 클라이언트/서버 프로그램을 설정할 수있었습니다. 에뮬레이터 또는 장치. 서버는 클라이언트로부터 데이터를 수신하지만 클라이언트는 서버로부터 데이터를 수신하지 않습니다 (모든 UDP). 서버가 recvfrom에서 클라이언트 주소를 가져 오는 동안 발생합니다. Android 에뮬레이터와 Android 기기 (내 휴대 전화)에서 모두 작동하도록하고 싶습니다. Android 에뮬레이터에 가상 라우터가 있다는 것을 읽었습니다. 서버에 동일한 컴퓨터에서 실행될 때 클라이언트에게 ip 10.0.2.2를 제공하려고 시도했지만 해결되지 않았습니다. 클라이언트와 서버간에 통신이 있습니다. 단지 한쪽 일뿐입니다. 누락 된 항목이 있습니까? Android 용 JNI \ C++ 및 PC 서버 용 winsock2에서 버클리 소켓을 사용하고 있습니다.PC 서버, Android 클라이언트. UDP. 클라이언트가 서버로부터 패킷을받지 못했습니다.

+0

Windows 서버에 Android 기기에 대한 경로가 있습니까? – fge

+0

안드로이드 에뮬레이터가 UDP 패킷을 수신한다는 것을 패킷 스니핑으로 발견했습니다. 하지만 가상 라우터가 있기 때문에 이러한 패킷은 안드로이드에서 내 응용 프로그램에 도달하지 않습니다. 기기에 대해 잘 모르겠습니다. – user1097185

+0

안드로이드 가상 장치에 텔넷이 있습니까? 시도하고'telnet theserver anopenport'를 시도하고 연결이 전혀 이루어지지 않았는지 확인하십시오. – fge

답변

0

편집 :

나는 그것을 만들 수있었습니다! 그래서 UDP는 두 가지 방식으로 Android에서 작동 할 수 있습니다! 문제는 winsock2에서 선택하면 사용되지 않는 첫 번째 매개 변수가 있지만 linux \ Android에서는 nfds가 사용되고 사용되는 것입니다. 그 매개 변수에 NULL을 보내는 것은 (내가 winsock2에서했던 것처럼), 기본적으로 select는 항상 0을 반환합니다.

도움 주셔서 감사합니다.

+0

어떻게 안드로이드 장치와 PC를 연결 했습니까? wif 또는 usb 테더를 통해 사용 했습니까? 그것이 wifi를 경유하면 wifi tether입니까? – Zax

+1

Zak, PC가 라우터와 LAN으로 연결되었습니다. 전화가 바로 같은 라우터에 연결된 WiFi를 사용하고있었습니다. 어떤 유효한 TCP \ IP 네트워크라도 할 것이다. – user1097185

0

안드로이드 주제로 수신되는 udp 패킷에 대한 소스 코드에 대한 링크를 게시한다면 간단하게 답변 할 수있는 질문이 많습니다. 나 자신은 PC에서 안드로이드로 보낼 udp 패킷에 대한 간단한 프로그램을 찾을 수 없습니다.