Java 응용 프로그램으로 완벽하게 작동하는 서버 및 클라이언트 코드가 있습니다. 서버는 로컬 컴퓨터에서 실행되며 포트 4444에서 수신 대기합니다. 모든 Java 응용 프로그램은 쉽게 연결할 수 있지만 코드를 Android로 이동하면 내가 시도하는 것과 상관없이 IOException이 계속 발생합니다. "localhost"를 "10.0.2.2"로 변경해야한다는 것을 알았지 만 여전히 IOException이 발생합니다. whatsmyip.org에서 내 IP 주소를 시도했지만 여전히 IOException을 제공합니다. 여기 내 안드로이드 코드는 ... 나는 당신이 당신의 서버와 같은 네트워크 장치에 안드로이드 클라이언트를 실행 알고있는 것처럼Android 프로그램을 로컬 호스트 서버에 연결하는 방법은 무엇입니까?
package test.myPackage;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class TestProjectActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv = new TextView(this);
tv.setText("Hello, Android");
setContentView(tv);
Socket s = null;
try {
s = new Socket("10.0.2.2", 4444);
tv.setText("socket: CONNECTED!");
} catch (UnknownHostException e) {
tv.setText("socket: unknown host");
} catch (IOException e) {
tv.setText("socket: IO Exception");
}
}
}
로컬 네트워크의 IP는 무엇입니까? Linux 또는 Windows를 사용하고 있습니까? 윈도우즈에서는 명령 창을 열고'ipconfig'를 입력하십시오. 그냥'IPV4'를 코드에 넣으십시오. 리눅스에서 터미널을 열고'ifconfig'를 실행하십시오. 분명히 ISP가 외부에서 컴퓨터에 대한 액세스를 차단했습니다. 공개 IP는 원하는 것이 아닙니다. –