1
我正在开发一个Android应用程序。有一台设备作为服务器。客户端设备可以连接到服务器设备。我想通过局域网来完成。我不确定这是最好的方式,但我开始做一个基于套接字的通信。客户端无法连接到服务器套接字 - Android
这里是我的服务器线程:
@Override
public void run() {
Socket socket = null;
try {
serverSocket = new ServerSocket(7777);
while (!Thread.currentThread().isInterrupted()) {
try {
socket = serverSocket.accept();
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
而且我有一个其他线程的通信...
现在,这里是我的客户线程:
public void run() {
try {
InetAddress serverAddress = InetAddress.getByName("10.0.2.2");
socket = new Socket(serverAddress, 7777);
writer = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())), true);
writer.println("Hello!");
writer.flush();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
问题是当客户端尝试连接到服务器时连接将会超时。
编辑:权限:
<uses-permission
android:name="android.permission.INTERNET"/>
<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE"/>
你能通过telnet连接到10.0.2.2:7777吗?如果您知道serverAddress IP,则不需要使用get ByName()。您可以连接新的套接字(“10.0.2.2”,7777)。 – SpeedEX505
我不行。我收到了以下消息:“正在连接到10.0.2.2 ...无法打开与主机的连接,端口7777:连接失败” – Lyra