java.net.SocketTimeoutException:无法连接到(我的ip)
我正在开发一个需要连接mysql的android应用程序。我使用pc作为本地主机托管wampserver。我还通过我的电脑将我真正的android设备连接到mysql。当我使用IP 192.168.1.x的家庭网络连接时,连接很好,我的应用程序在检索和插入数据方面工作正常。但当我使用其他网络/IP地址连接时,例如10.207.x.x或192.168.0.x,它会抛出错误。我已被检查,我已添加INTERNET权限,我尝试更改连接中的端口号(例如文件目录),但仍不起作用。请帮忙,我已经挣扎了几天了 错误日志:java.net.SocketTimeoutException:无法连接到(我的ip),java,android,mysql,Java,Android,Mysql,我正在开发一个需要连接mysql的android应用程序。我使用pc作为本地主机托管wampserver。我还通过我的电脑将我真正的android设备连接到mysql。当我使用IP 192.168.1.x的家庭网络连接时,连接很好,我的应用程序在检索和插入数据方面工作正常。但当我使用其他网络/IP地址连接时,例如10.207.x.x或192.168.0.x,它会抛出错误。我已被检查,我已添加INTERNET权限,我尝试更改连接中的端口号(例如文件目录),但仍不起作用。请帮忙,我已经挣扎了几天了
04-27 22:19:23.920 4644-4740/? W/System.err: java.net.SocketTimeoutException: failed to connect to /192.168.0.108 (port 8085) after 15000ms
04-27 22:19:23.940 4644-4740/? W/System.err: at libcore.io.IoBridge.connectErrno(IoBridge.java:159)
04-27 22:19:23.940 4644-4740/? W/System.err: at libcore.io.IoBridge.connect(IoBridge.java:112)
04-27 22:19:23.950 4644-4740/? W/System.err: at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
04-27 22:19:23.960 4644-4740/? W/System.err: at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:460)
04-27 22:19:23.960 4644-4740/? W/System.err: at java.net.Socket.connect(Socket.java:833)
04-27 22:19:23.970 4644-4740/? W/System.err: at com.android.okhttp.internal.Platform.connectSocket(Platform.java:152)
04-27 22:19:23.980 4644-4740/? W/System.err: at com.android.okhttp.Connection.connect(Connection.java:101)
04-27 22:19:23.980 4644-4740/? W/System.err: at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:294)
04-27 22:19:23.990 4644-4740/? W/System.err: at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255)
04-27 22:19:24.000 4644-4740/? W/System.err: at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206)
04-27 22:19:24.000 4644-4740/? W/System.err: at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:345)
04-27 22:19:24.010 4644-4740/? W/System.err: at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:89)
04-27 22:19:24.020 4644-4740/? W/System.err: at com.android.okhttp.internal.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:197)
04-27 22:19:24.030 4644-4740/? W/System.err: at com.qualcomm.vuforia.samples.SampleApplication.utils.HttpUrlConnectionParser.makehttpUrlConnection(HttpUrlConnectionParser.java:48)
04-27 22:19:24.030 4644-4740/? W/System.err: at com.qualcomm.vuforia.samples.Books.app.Books.FeedBack$ConnectDatabase.doInBackground(FeedBack.java:182)
04-27 22:19:24.040 4644-4740/? W/System.err: at com.qualcomm.vuforia.samples.Books.app.Books.FeedBack$ConnectDatabase.doInBackground(FeedBack.java:140)
04-27 22:19:24.050 4644-4740/? W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:288)
04-27 22:19:24.050 4644-4740/? W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
04-27 22:19:24.060 4644-4740/? W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
04-27 22:19:24.070 4644-4740/? W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
04-27 22:19:24.070 4644-4740/? W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
04-27 22:19:24.080 4644-4740/? W/System.err: at java.lang.Thread.run(Thread.java:841)
我的背景代码:
@Override
protected String doInBackground(String... params) {
String fb_url = "http://192.168.0.108:8085/android/comment.php";
String get_list = "http://192.168.0.108:8085/android/get_list.php";
String get_id = "http://192.168.0.108:8085/android/get_id.php";
data = new HashMap<>();
String[] response = new String[]{"Response Accepted, Thanks!","Leave us some comment =)"};
String method = params[0];
if (method.equals("feedBack")) {
String id = params[1];
String bus = params[2];
String depart_station = params[3];
String arrive_station = params[4];
String item = params[5];
String comment = params[6];
data.put("reported_case",id);
data.put("reported_bus",bus);
data.put("depart_station", depart_station);
data.put("arrive_station", arrive_station);
data.put("reported_item", item);
data.put("reporter_comment", comment);
try {
String result = HttpUrlConnectionParser.makehttpUrlConnection(fb_url, data);
result = null;
return response[0];
} catch (Exception e) {
}
} else if (method.equals("getList")) {
try {
String result = HttpUrlConnectionParser.makehttpUrlConnection(get_list, data);
JSONObject json = new JSONObject(result);
boolean ssucc = json.getBoolean("ssuccess");
boolean isucc = json.getBoolean("isuccess");
boolean bsucc = json.getBoolean("bsuccess");
if (!ssucc && !isucc &&!bsucc) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_SHORT).show();
}
});
} else {
JSONArray jsonArrays = json.getJSONArray("Station");
JSONArray jsonArrayi = json.getJSONArray("Item");
JSONArray jsonArrayb = json.getJSONArray("BusType");
final List<String> lists = new ArrayList<>();
final List<String> listi = new ArrayList<>();
final List<String> listb = new ArrayList<>();
for (int i = 0; i < jsonArrayb.length(); i++) {
JSONObject child = jsonArrayb.getJSONObject(i);
String childBus = child.optString("Bus");
listb.add(childBus);
}
for (int i = 0; i < jsonArrays.length(); i++) {
JSONObject child = jsonArrays.getJSONObject(i);
String childId = child.optString("ID");
String childName = child.optString("Name");
lists.add(childId + " " + childName);
}
for (int i = 0; i < jsonArrayi.length(); i++) {
JSONObject child = jsonArrayi.getJSONObject(i);
String childId = child.optString("ID");
String childItem = child.optString("Item");
listi.add(childId + " " + childItem);
}
runOnUiThread(new Runnable() {
@Override
public void run() {
ArrayAdapter<String> adp1 = new ArrayAdapter<>(getApplicationContext(),R.layout.spinner_text, listb);
adp1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
editBus.setAdapter(adp1);
ArrayAdapter<String> adp2 = new ArrayAdapter<>(getApplicationContext(), R.layout.spinner_text, listi);
adp2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
editItem.setAdapter(adp2);
ArrayAdapter<String> adp3 = new ArrayAdapter<>(getApplicationContext(), R.layout.spinner_text, lists);
adp1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
editStationDepart.setAdapter(adp3);
editStationArrive.setAdapter(adp3);
}
});
}
return response[1];
} catch (JSONException e) {
e.printStackTrace();
}
}else if (method.equals("getId")) {
try {
String result = HttpUrlConnectionParser.makehttpUrlConnection(get_id, data);
JSONObject json = new JSONObject(result);
boolean fsucc = json.getBoolean("fsuccess");
if (!fsucc) {
return null;
}else{
JSONArray jsonArrayf = json.getJSONArray("FeedBack_id");
JSONObject child = jsonArrayf.getJSONObject(0);
String childId = child.optString("ID");
return childId;
}
} catch (JSONException e) {
e.printStackTrace();
}
}
return null;
}
@覆盖
受保护的字符串doInBackground(字符串…参数){
字符串fb_url=”http://192.168.0.108:8085/android/comment.php";
字符串get_list=”http://192.168.0.108:8085/android/get_list.php";
字符串get_id=”http://192.168.0.108:8085/android/get_id.php";
data=newhashmap();
String[]response=newstring[]{“response Accepted,thanking!”,“leavesomecomment=)”;
字符串方法=参数[0];
if(方法等于(“反馈”)){
字符串id=参数[1];
字符串总线=参数[2];
字符串depart_station=params[3];
字符串到达站=参数[4];
字符串项=参数[5];
字符串注释=参数[6];
数据。put(“报告的案例”,id);
数据输入(“报告的总线”,总线);
数据输入(“出发站”,出发站);
数据输入(“到达站”,到达站);
数据输入(“报告的项目”,项目);
data.put(“reporter_comment”,comment);
试一试{
字符串结果=HttpUrlConnectionParser.makehttpUrlConnection(fb_url,数据);
结果=空;
返回响应[0];
}捕获(例外e){
}
}else if(method.equals(“getList”)){
试一试{
String result=HttpUrlConnectionParser.makehttpUrlConnection(获取列表,数据);
JSONObject json=新的JSONObject(结果);
布尔ssucc=json.getBoolean(“SSACCESS”);
boolean isucc=json.getBoolean(“isuccess”);
boolean bsucc=json.getBoolean(“bsuccess”);
如果(!ssucc&&!isucc&&!bsucc){
runOnUiThread(新的Runnable(){
@凌驾
公开募捐{
Toast.makeText(getApplicationContext(),“Error”,Toast.LENGTH_SHORT.show();
}
});
}否则{
JSONArray jsonArrays=json.getJSONArray(“站”);
JSONArray jsonArrayi=json.getJSONArray(“项”);
JSONArray jsonArrayb=json.getJSONArray(“BusType”);
最终列表列表=新的ArrayList();
最终列表列表i=新的ArrayList();
最终列表listb=新的ArrayList();
for(int i=0;ipublic static String makehttpUrlConnection(String url_path,HashMap<String,String> data) {
try {
URL url = new URL(url_path);
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setReadTimeout(10000);
urlConnection.setConnectTimeout(20000);
urlConnection.setRequestMethod("POST");
urlConnection.setDoInput(true);
urlConnection.setDoOutput(true);
OutputStream os = urlConnection.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
writer.write(getQueryData(data));
writer.flush();
writer.close();
urlConnection.connect();
is = urlConnection.getInputStream();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
json = sb.toString();
is.close();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return json;
}