У меня есть код сервера и клиента, который отлично работает как приложение Java. Сервер запускается на моем локальном компьютере и прослушивает порт 4444. Любое приложение Java может легко подключаться, но когда я переношу свой код на Android, я продолжаю получать IOException, независимо от того, что я пытаюсь. Я прочитал, что вам нужно изменить «localhost» на «10.0.2.2», но я все еще получаю исключение IOException. Я попробовал свой IP-адрес с сайта whatsmyip.org, но он по-прежнему дает мне 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 в свой код. В linux откройте терминал и выполните 'ifconfig'. Очевидно, ваш интернет-провайдер заблокировал доступ к вашей машине извне. Ваш публичный IP-адрес не то, что вы хотите. –