모바일 인터넷을 통해 Raspberry Pi의 Android 전화와 서버 간의 연결에 문제가 있습니다. 안드로이드에서 RPi와 클라이언트에 간단한 서버를 만들었습니다. 나는 또한 DNS 문제에 Weaved 소프트웨어를 설치했다. 내가 즉 이클립스에있는 다른 PC에 간단한 클라이언트를 사용할 때 나는 서버를 사용하여 즉에 연결할 수 있습니다IP 대신 호스트 이름을 사용하기 때문에 소켓이 모바일 인터넷을 통해 서버에 연결할 수 없습니다. 즉, Eclipse 및 WIFI를 통해 작동합니다.
client = new Socket("proxy.11.xxx.net", 54812)
같은 안드로이드에 내가 WIFI를 사용하는 경우. WIFI를 끄면 문제가 시작됩니다. 소켓 소켓에 연결하지 않았습니다. 나는 허가를 설정했다 :
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
예외는 없다. 소켓이 성공적으로 생성되었지만 서버에 연결되지 않았습니다.
즉 나는 웹 브라우저에
proxy.11.xxx.net:54812
를 넣어 입력 서버에 대한 연결이 있습니다. Ofcourse는 WIFI를 통해 로컬 네트워크에 연결되어 있고 RPi의 직선 IP 번호를 넣었을 때 작동하지만 그것이 의미하는 바가 아닙니다. 안드로이드에서 인터넷을 통해 유능한 사람들과 연결하고 싶습니다. 왜 내가 PC에서 안드로이드에 같은 주소를 연결할 수 있습니까?
누구나 도움을 주실 수 있습니까? 내가 사용하는 경우
는 :
편집 new Socket (proxy.11.xxx.net,54812)
에는 예외가 없다. 소켓은 확인 생성됩니다 http://imgur.com/pTHXaAE
내가 new Socket(http://proxy.11.xxx.net,54812)
를 사용하는 경우 :
java.net.UnknownHostException: Unable to resolve host "http://proxy11.yoics.net": No address associated with hostname
06-10 22:03:46.576 29922-29944/com.mmc.mateusz.rpilight W/System.err: at java.net.InetAddress.lookupHostByName(InetAddress.java:457)
06-10 22:03:46.576 29922-29944/com.mmc.mateusz.rpilight W/System.err: at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252)
06-10 22:03:46.576 29922-29944/com.mmc.mateusz.rpilight W/System.err: at java.net.InetAddress.getAllByName(InetAddress.java:215)
06-10 22:03:46.576 29922-29944/com.mmc.mateusz.rpilight W/System.err: at java.net.Socket.tryAllAddresses(Socket.java:109)
06-10 22:03:46.576 29922-29944/com.mmc.mateusz.rpilight W/System.err: at java.net.Socket.<init>(Socket.java:178)
06-10 22:03:46.576 29922-29944/com.mmc.mateusz.rpilight W/System.err: at java.net.Socket.<init>(Socket.java:150)
06-10 22:03:46.576 29922-29944/com.mmc.mateusz.rpilight W/System.err: at com.mmc.mateusz.rpilight.Client.openSocket(Client.java:50)
06-10 22:03:46.576 29922-29944/com.mmc.mateusz.rpilight W/System.err: at com.mmc.mateusz.rpilight.Client.doInBackground(Client.java:76)
06-10 22:03:46.576 29922-29944/com.mmc.mateusz.rpilight W/System.err: at com.mmc.mateusz.rpilight.Client.doInBackground(Client.java:30)
06-10 22:03:46.576 29922-29944/com.mmc.mateusz.rpilight W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:292)
06-10 22:03:46.576 29922-29944/com.mmc.mateusz.rpilight W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
06-10 22:03:46.576 29922-29944/com.mmc.mateusz.rpilight W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
06-10 22:03:46.576 29922-29944/com.mmc.mateusz.rpilight W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
06-10 22:03:46.576 29922-29944/com.mmc.mateusz.rpilight W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
06-10 22:03:46.576 29922-29944/com.mmc.mateusz.rpilight W/System.err: at java.lang.Thread.run(Thread.java:818)
06-10 22:03:46.577 29922-29944/com.mmc.mateusz.rpilight W/System.err: Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname)
06-10 22:03:46.577 29922-29944/com.mmc.mateusz.rpilight W/System.err: at libcore.io.Posix.android_getaddrinfo(Native Method)
06-10 22:03:46.577 29922-29944/com.mmc.mateusz.rpilight W/System.err: at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:55)
06-10 22:03:46.577 29922-29944/com.mmc.mateusz.rpilight W/System.err: at java.net.InetAddress.lookupHostByName(InetAddress.java:438)
소켓이 연결할 수없는 경우 소켓이보고하는 실제 오류는 무엇입니까? –
이것은 네트워킹 문제와 같지만 프로그래밍 문제는 아닙니다. [ServerFault] (http://serverfault.com)를 대신 사용해보십시오. –