2014년 5월 20일 화요일

[Android] 소켓 통신 (android setSoTimeout 과 setConnectionTimeout 의 차이)


안드로이드 소켓 통신 


setSoTimeout setConnectionTimeout 



안드로이드 통신

setConnectionTimeout : 서버가 응답하는 시간의 한도를 정하는 것

setSoTimeout : 서버가 응답하지 않는 경우 소켓의 연결을 끊는 것 (접속 후 먹통이 되는 현상 방지)



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
  HttpClient http = new DefaultHttpClient();
  HttpParams params = http.getParams();
  HttpConnectionParams.setConnectionTimeout(params, 1000 * 60);
  HttpConnectionParams.setSoTimeout(params, 1000 * 300);
  // 서버에 전달할 파라메터 세팅
  ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
  // 서버에 요청정보 입력
  // XML 형식으로 변환 (String)
  String message = null;
  message = converter.toMessage(in);
  nameValuePairs.add(new BasicNameValuePair("message", message));
  HttpPost httpPost = new HttpPost(url);
  httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));
  // request
  HttpResponse response = http.execute(httpPost);
  // response
  StringBuffer output = new StringBuffer();
  InputStream instream = response.getEntity().getContent();
  BufferedReader reader = new BufferedReader(new InputStreamReader(instream));
  String line = null;
    while (true) {
         line = reader.readLine();
         if (line == null) {
             break;
         }
         output.append(line + "\n");
     }
  reader.close();
  return output;

댓글 없음:

댓글 쓰기