Не работает подключение через ServerSocket
Добавлено: 05 июл 2018, 12:36
Здравствуйте.
Подскажите в какую сторону копать?
Пишу сервер на телефоне который будет принимать запросы с компьютеров и обрабатывать их. Но проблема в том что телефон не отвечает даже на запросы пинга. Клиенты вываливаются с ошибкой что адрес недоступен. Хотя адрес и мак видно в карте роутера.
Вот код сервера:
Вроде в примере на тытрубе это все работало.
У меня телефон в сети, но пинг с компа не проходит ни в какую. Следовательно и доступа к серверу тоже нету.
Вот разрешения манифеста
Подскажите пожалуйста может чтото не так сделал??
Подскажите в какую сторону копать?
Пишу сервер на телефоне который будет принимать запросы с компьютеров и обрабатывать их. Но проблема в том что телефон не отвечает даже на запросы пинга. Клиенты вываливаются с ошибкой что адрес недоступен. Хотя адрес и мак видно в карте роутера.
Вот код сервера:
Код: Выделить всё
private class SocketServerThread extends Thread {
static final int SERVER_PORT = 1234;
int count = 0;
String command = "";
Context context;
public SocketServerThread(Context activity) {
this.context = activity;
}
@Override
public void run() {
try {
serverSocket = new ServerSocket();
serverSocket.setReuseAddress(true);
serverSocket.bind(new InetSocketAddress(SERVER_PORT));
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
info.setText("Started on : " + serverSocket.getLocalPort());
}
});
while (!socketServerThread.interrupted()) {
Socket socket = serverSocket.accept();
count++;
message += "#catch: " + socket.getInetAddress() + ":" + socket.getPort() + "\n";
// пробуем прочитать данные из потока
command = "";
try {
DataInputStream in = new DataInputStream(new BufferedInputStream(socket.getInputStream()));
byte[] bytes = new byte[2048];
int count = in.read(bytes, 0, bytes.length);
if (count > 0) {
command = new String(bytes, "windows-1251");
message += command + "\n";
}
message += "BROCKEN MESSAGE\n";
} catch (Exception ex) {
message += "EXCEPTION MESSAGE\n";
}
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
msg.setText(message);
}
});
SocketServerReplyThread socketServerReplyThread = new SocketServerReplyThread(socket, count);
socketServerReplyThread.run();
}
serverSocket.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
final String message = e.getMessage();
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
info.setText("Server fail " + message);
}
});
}
TaskRunned = false; // говорим что не работает поток потом сможем запустить повторно из таймера
}
}
У меня телефон в сети, но пинг с компа не проходит ни в какую. Следовательно и доступа к серверу тоже нету.
Вот разрешения манифеста
Код: Выделить всё
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
<uses-permission android:name="android.permission.ACTION_CALL"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permisssion.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permisssion.ACCESS_COARSE_LOCATION"/>