마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드에서 웹서버로 파일전송중에 오류가납니다. ETIMEDOUT

0 추천
웹서버는 VMplayer에 페도라를 설치해서 웹서버를 만들었구요
윈도우에서 VM에서구축한 웹서버 주소치고 들어가면 잘들어가집니다.
 
URL때문인지 conn.getoutputstream에서 문제인지 잘모르겠습니다.
(제일아래에소스첨부했습니다)
아래는 로그캣에 나온 오류입니다.
02-24 15:27:45.133: E/Upload file to server Exception(7388): Exception : failed to connect to /192.168.111.100 (port 80): connect failed: ETIMEDOUT (Connection timed out)
02-24 15:27:45.133: E/Upload file to server Exception(7388): java.net.ConnectException: failed to connect to /192.168.111.100 (port 80): connect failed: ETIMEDOUT (Connection timed out)
02-24 15:27:45.133: E/Upload file to server Exception(7388): 	at libcore.io.IoBridge.connect(IoBridge.java:114)
02-24 15:27:45.133: E/Upload file to server Exception(7388): 	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
02-24 15:27:45.133: E/Upload file to server Exception(7388): 	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:460)
02-24 15:27:45.133: E/Upload file to server Exception(7388): 	at java.net.Socket.connect(Socket.java:832)
02-24 15:27:45.133: E/Upload file to server Exception(7388): 	at libcore.net.http.HttpConnection.<init>(HttpConnection.java:76)
02-24 15:27:45.133: E/Upload file to server Exception(7388): 	at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
02-24 15:27:45.133: E/Upload file to server Exception(7388): 	at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340)
02-24 15:27:45.133: E/Upload file to server Exception(7388): 	at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
02-24 15:27:45.133: E/Upload file to server Exception(7388): 	at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
02-24 15:27:45.133: E/Upload file to server Exception(7388): 	at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:315)
02-24 15:27:45.133: E/Upload file to server Exception(7388): 	at libcore.net.http.HttpEngine.connect(HttpEngine.java:310)
02-24 15:27:45.133: E/Upload file to server Exception(7388): 	at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:289)
02-24 15:27:45.133: E/Upload file to server Exception(7388): 	at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:239)
02-24 15:27:45.133: E/Upload file to server Exception(7388): 	at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:80)
02-24 15:27:45.133: E/Upload file to server Exception(7388): 	at libcore.net.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:188)
02-24 15:27:45.133: E/Upload file to server Exception(7388): 	at com.example.filetest.MainActivity.uploadFile(MainActivity.java:114)
02-24 15:27:45.133: E/Upload file to server Exception(7388): 	at com.example.filetest.MainActivity$1$1.run(MainActivity.java:55)
02-24 15:27:45.133: E/Upload file to server Exception(7388): 	at java.lang.Thread.run(Thread.java:856)
02-24 15:27:45.133: E/Upload file to server Exception(7388): Caused by: libcore.io.ErrnoException: connect failed: ETIMEDOUT (Connection timed out)
02-24 15:27:45.133: E/Upload file to server Exception(7388): 	at libcore.io.Posix.connect(Native Method)
02-24 15:27:45.133: E/Upload file to server Exception(7388): 	at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:85)
02-24 15:27:45.133: E/Upload file to server Exception(7388): 	at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
02-24 15:27:45.133: E/Upload file to server Exception(7388): 	at libcore.io.IoBridge.connect(IoBridge.java:112)
02-24 15:27:45.133: E/Upload file to server Exception(7388): 	... 17 more
final String uploadFilePath = "/mnt/sdcard/DCIM/Camera/";
	final String uploadFileName = "1392025513112.jpg";

	@Override
	public void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		uploadButton = (Button) findViewById(R.id.uploadButton);
		messageText = (TextView) findViewById(R.id.messageText);

		messageText.setText("Uploading file path :- " + uploadFilePath
				+ uploadFileName + "'");

		/************* Php script path ****************/
		upLoadServerUri = "http://192.168.111.100:80/UploadToServer.php";

 

FileInputStream fileInputStream = new FileInputStream(
						sourceFile);
				URL url = new URL(upLoadServerUri);

				// Open a HTTP connection to the URL
				conn = (HttpURLConnection) url.openConnection();
				conn.setDoInput(true); // Allow Inputs
				conn.setDoOutput(true); // Allow Outputs
				conn.setUseCaches(false); // Don't use a Cached Copy
				conn.setRequestMethod("POST");
				conn.setRequestProperty("Connection", "Keep-Alive");
				conn.setRequestProperty("ENCTYPE", "multipart/form-data");
				conn.setRequestProperty("Content-Type",
						"multipart/form-data;boundary=" + boundary);
				conn.setRequestProperty("uploaded_file", fileName);
				Log.e("QWE","dd");
				Log.e("QWE","d"+conn.getOutputStream());
				dos = new DataOutputStream(conn.getOutputStream());
				Log.e("QWE","dd1");
				dos.writeBytes(twoHyphens + boundary + lineEnd);
				dos.writeBytes("Content-Disposition: form-data; name=\"uploaded_file\";filename=\""
						+ fileName + "\"" + lineEnd);
				Log.e("QWE","dd2");
				dos.writeBytes(lineEnd);

 

간지봉 (420 포인트) 님이 2014년 2월 24일 질문

2개의 답변

0 추천
 
채택된 답변

글쓴이님이 로컬에서는 접속되는데 폰에서는 안된다는 질문 같으신데 IP대역을 알아 보셔야 할거 같네요

192.xxx.xxx.xxx 는 외부IP대역이 아니라 사설개인IP대역이라 같은 망내에서 접속이 가능합니다.

개인서버돌리시면 공유기 물려서 폰도 와이파이잡아서 접속하셔야 될듯합니다.

 

클래스별 사설IP 대역 

 

A Class : 0.0.0.0 ~ 127.255.255.255

--> 사설IP 대역 : 10.0.0.0 ~ 10.255.255.255

 

B Class : 128.0.0.0 ~ 191.255.255.255

--> 사설IP 대역 : 172.16.0.0 ~ 172.31.255.255

 

C Class : 192.0.0.0 ~ 223.255.255.255 

--> 사설IP 대역 : 192.168.0.0 ~ 192.168.255.255

[출처] 클래스별 사설 IP 대역|작성자 xgraph

 

 

[출처] 클래스별 사설 IP 대역|작성자 xgraph

 

bangbang (8,820 포인트) 님이 2014년 2월 25일 답변
간지봉님이 2014년 2월 25일 채택됨
vm사용하니 아이피문제엿네요ㅠㅠ감사합니다
이 소스코드 전체 를 볼수있을까요?
제 메일로 보내주실수잇나요?
qn135@naver.com
부탁드립니다...
0 추천
서버쪽에는 잘 구현이 되어있는지 모르겠네요..

로그는 그냥 연결 시도하다가 실패한게 아닌지;

로그를 어디서 에러가 났는지 보려고 남겨둔거 아닌가요? 그럼 로그 전체를 올려주면 더욱 수월한 답이 되리라 생각됩니다.

지금 로그로 봐서는 로그를 남겨서 에러의 원인을 찾으려고 했던곳이 실행도 안 되고 에러가 났으니까요..
인연 (31,880 포인트) 님이 2014년 2월 24일 답변
...