안녕하세요 항상 안드로이드 펍으로 부터 도움 받고 있는 초보 개발자 입니다.
일단 제 소스를 보면
소켓을 생성 하고
so = new Socket();
so.connect(addr, timeout);
in = new DataInputStream(so.getInputStream());
out = new DataOutputStream(so.getOutputStream());
post_header = "GET "
+ /test.php
+ " HTTP/1.1\n"
+ "Accept: */*\n"
+ "Referer: "
+ host
+ /test.php
+ "\n"
+ "Accept-Language: ko\n"
+ "Content-Type: multipart/form-data; boundary=---------------------------7d0320204f4\n"
+ "Accept-Encoding: gzip, deflate\n"
+ "User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)\n"
+ "Host: " + host + ":" + port + "\n\n";
Log.d("SOCKET", "SOCKET [CLIENT -> SERVER]: \n" + post_header);
try {
out.write(post_header.getBytes(), 0, post_header.length());
out.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
while(
if (in.available() == 0) {
sleep(10);
/* If no packet in 3 seconds */
if (wait_cnt == 30) {
toastShow("Time out !!");
break;
}....
line = in.readLine();
.....
}
위 와 같은 방식으로 80 port 로 접속 해서 /test.php 를 수행시키고 해당 수행 결과를 받아 옵니다.
wi-fi 의 경우 문제 없이 잘 받아 오는데
문제는 3G 입니다. 3G 의 경우 서버로 부터 아무런 응답이 없네요. ( 10초 이상 기다려도 응답이 없어요).
(in.available() 에서 막히네요.)
일단 원인은 두 가지로 생각되는데요
1. androidManifest 에 permission 중 3G 에 관한 제약이 걸려 있다.
2. server 로 부터 deny 되었다. ( wi-fi 는 왜 되는지 ㅡㅡ;)
일단 네트워크를 이용하는데 3g 와 wi-fi 의 왜 차이가 있는지 의문이 들고 혹시 해결할 방안이 있는지
고수님들의 소중한 의견 귀기울입니다.
즐거운 주말 되세요.