我有以下问题...我正在编写一个由服务器端组成的系统 - 在我的电脑上和客户端上我可爱的Xperia(a.k.a.一个Android手机)。问题是,当我尝试通过客户端应用程序将手机绑定到PC时,logcat会说:
failed to connect to /*xxx.xxx.x.xxx (port 2002): connect failed: ETIMEDOUT (Connection timed out)
*这里是我的IP地址,它以192 ...
开头实际上我在客户端使用了try-catch,在我设置套接字的尝试中,但问题是进程失败,我想,在catch块中进行正确创建套接字...我我在家里的Wi-Fi热点上运行这两个设备。正如我所说,我使用套接字,这可能意味着我的连接类型是TCP(?:))。请建议某种解决方案,因为我继续在论坛中阅读(这里也是如此),我越感到困惑。
剪掉了我的代码:
public class ClientSide extends AsyncTask<String, Void, String>{
protected String doInBackground(String... params){
final String SERVER_HOSTNAME = "xxx.xxx.x.xxx";
final int SERVER_PORT = 2002;
BufferedReader mSocketReader;
PrintWriter mSocketWriter;
final String TAG = ClientSide.class.getSimpleName();
String data="";
String outputln = "Me. Android";
try {
Socket socket = new Socket(SERVER_HOSTNAME, SERVER_PORT);
mSocketReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
mSocketWriter = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
System.out.println("Connected to server " + SERVER_HOSTNAME + ":" + SERVER_PORT);
//Reads from the socket
data = mSocketReader.readLine();
//Writes to the socket, a.k.a. sends info
mSocketWriter.println(outputln);
mSocketWriter.flush();
} catch (IOException ioe) {
System.err.println("Cannot connect to " + SERVER_HOSTNAME + ":" + SERVER_PORT);
ioe.printStackTrace();
}
return data;
}
提前感谢您,如果您需要更多信息,我会尽力提供。我是Android开发人员的极端初学者,对不起我的英语。
*更新:服务器端应用程序是用java编写的,也是6-7个类的构建,我不会通过Apache或其中任何一个来运行。我不想只测试我的应用程序,我希望通过Wi-Fi实现真正的连接,而不是通过USB。
答案 0 :(得分:1)
尝试:打开控制面板-> Windows Defender防火墙->允许应用程序或功能通过Windows Defender防火墙(在左侧)->检查Apache HTTP服务器和mysqld上的专用和公用网络 ???