Я пытаюсь подключить мое приложение для Android к сокету на сервере через Интернет. Я замечаю, что когда у меня включен Wi-Fi в телефоне, приложение может успешно подключиться к порту, но если я отключу Wi-Fi, у меня будет тайм-аут на соединение. Я могу получить доступ к Интернету и просматривать его по телефону без проблем, когда Wi-Fi отключен, но подключение к этому серверу всегда не удается.
Я убедился, что сервер прослушивает этот порт, и я всегда могу подключиться с любого другого компьютера через Интернет и по телефону, если включен Wi-Fi.
Мне интересно, что может отличаться между использованием беспроводного соединения и соединения сотовой связи для достижения этого местоположения. IP-адрес, который я использую для подключения к этому адресу, является публичным.
Button SendButton = (Button) findViewById(R.id.SendButton);
SendButton.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
Socket kkSocket = null;
PrintWriter out = null;
try {
kkSocket = new Socket("X.X.X.X", 4444);
out = new PrintWriter(kkSocket.getOutputStream(), true);
} catch (UnknownHostException e) {
System.err.println("Don't know about host: X.X.X.X");
} catch (IOException e) {
System.err.println("Couldn't get I/O for the connection to: X.X.X.X");
}