안녕하세요?

개발중 문제에 봉착해서 진도를 못나가고 있습니다.

개발을 업으로 하는 사람은 아닙니다만 계속 공부하면서 이것 저것 해보고 있는데

OkHttpClient + Retrofit2 로 mysql에 wifi에서 동시접속시을 하면 

첫번째 접속한 폰은 문제없이 계속 자료를 읽어 올수 있으나 

그다음에 접속하는 다른 폰은 계속 java.net.SocketTimeoutException: connect timed out이 발생합니다.

몇일째 구글링과 삽질을 해도 찾을수가 없네요.


고수님은 보시면 금방 해결하실수 있을듯해서

질문/답변 게시판에 올리려다 수고하신 만큼 보상해 드리겠습니다.


연락처는 010-3164-3684

해결 가능하신분 소요시간과 작업비용을 문자로 알려주세요.


소스는 아래와 같습니다.

public class ApiService {
public static <S> S createService(Class<S> serviceClass) {
OkHttpClient httpClient=new OkHttpClient.Builder()
.connectTimeout(60, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.writeTimeout(15, TimeUnit.SECONDS)
.retryOnConnectionFailure(true)
.connectionPool(new ConnectionPool(0, 1, TimeUnit.NANOSECONDS))
.build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(""http://www.~~~~~~~~~~~~~~~/")
.addConverterFactory(GsonConverterFactory.create())
.client(httpClient).build();
return retrofit.create(serviceClass);
}
}

@GET("center_list_select_by_center_gubun.php")
@Headers({"Content-Type: application/json; charset=utf-8"})
Call<CenterModel> getCenterListByCenterGubun(@Query("center_gubun") String center_gubun,
@Query("article_id") String article_id,
@Query("on_list") String on_list);


api = ApiService.createService(ApiInterface.class);
Call<CenterModel> call = api.getCenterListByCenterGubun(tab_gubun_s, String.valueOf(lastId), "1");
call.enqueue(new Callback<CenterModel>() {
@Override
public void onResponse(@NonNull Call<CenterModel> call, @NonNull Response<CenterModel> response) {
if(response.isSuccessful()){
if (response.body() == null || response.body().getResult() == null) {
return;
}

ArrayList<CenterModel.data> resultData = response.body().getResult();
CenterModel.data lastData = resultData.get(resultData.size()-1);

if (lastData.id != null) {
if (lastId > Integer.valueOf(lastData.id)) {
lastId = Integer.valueOf(lastData.id);
isLoaded = false;
setResponseData(resultData, isNew);
dataList.addAll(resultData);
}
} else {
isLoaded = true;
}
}else{
Toast.makeText(getContext(), "Error:"+String.valueOf(response.code()), Toast.LENGTH_LONG).show();
}
}
@Override
public void onFailure(@NonNull Call<CenterModel> call, @NonNull Throwable t) { Log.e(TAG, t.toString());
if (t.toString().split(":")[0].equals("java.net.SocketTimeoutException")) MyUtils.wifiAlert(getContext());
}
});