Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.63
dajver
 Аватар для dajver
406 / 270 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
#1

Sendto failed: ECONNRESET (Connection reset by peer) - Android

04.08.2014, 20:42. Просмотров 2065. Ответов 0
Метки нет (Все метки)

Обычно привык решать проблемы в коде гуглением, но что то на этот вопрос вообще не нашел ответа...

В общем я пытаюсь отправить видео на сервер с помощью AsyncTask'a, но у меня сыпется на выполнении запроса как раз..

Вот мой стек трейс:
Java
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
08-04 19:22:35.254: E/VideoMap(19481): error: sendto failed: ECONNRESET (Connection reset by peer)
08-04 19:22:35.254: E/VideoMap(19481): java.net.SocketException: sendto failed: ECONNRESET (Connection reset by peer)
08-04 19:22:35.254: E/VideoMap(19481):  at libcore.io.IoBridge.maybeThrowAfterSendto(IoBridge.java:499)
08-04 19:22:35.254: E/VideoMap(19481):  at libcore.io.IoBridge.sendto(IoBridge.java:468)
08-04 19:22:35.254: E/VideoMap(19481):  at java.net.PlainSocketImpl.write(PlainSocketImpl.java:507)
08-04 19:22:35.254: E/VideoMap(19481):  at java.net.PlainSocketImpl.access$100(PlainSocketImpl.java:46)
08-04 19:22:35.254: E/VideoMap(19481):  at java.net.PlainSocketImpl$PlainSocketOutputStream.write(PlainSocketImpl.java:269)
08-04 19:22:35.254: E/VideoMap(19481):  at java.io.BufferedOutputStream.write(BufferedOutputStream.java:131)
08-04 19:22:35.254: E/VideoMap(19481):  at java.io.ByteArrayOutputStream.writeTo(ByteArrayOutputStream.java:231)
08-04 19:22:35.254: E/VideoMap(19481):  at com.android.okhttp.internal.http.RetryableOutputStream.writeToSocket(RetryableOutputStream.java:73)
08-04 19:22:35.254: E/VideoMap(19481):  at com.android.okhttp.internal.http.HttpTransport.writeRequestBody(HttpTransport.java:112)
08-04 19:22:35.254: E/VideoMap(19481):  at com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:638)
08-04 19:22:35.254: E/VideoMap(19481):  at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:347)
08-04 19:22:35.254: E/VideoMap(19481):  at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:296)
08-04 19:22:35.254: E/VideoMap(19481):  at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:503)
08-04 19:22:35.254: E/VideoMap(19481):  at com.ua.videmap1.rest.api.FileUploader.upLoad2Server(FileUploader.java:114)
08-04 19:22:35.254: E/VideoMap(19481):  at com.ua.videmap1.rest.api.FileUploader.doInBackground(FileUploader.java:41)
08-04 19:22:35.254: E/VideoMap(19481):  at com.ua.videmap1.rest.api.FileUploader.doInBackground(FileUploader.java:1)
08-04 19:22:35.254: E/VideoMap(19481):  at android.os.AsyncTask$2.call(AsyncTask.java:288)
08-04 19:22:35.254: E/VideoMap(19481):  at java.util.concurrent.FutureTask.run(FutureTask.java:237)
08-04 19:22:35.254: E/VideoMap(19481):  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
08-04 19:22:35.254: E/VideoMap(19481):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
08-04 19:22:35.254: E/VideoMap(19481):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
08-04 19:22:35.254: E/VideoMap(19481):  at java.lang.Thread.run(Thread.java:841)
08-04 19:22:35.254: E/VideoMap(19481): Caused by: libcore.io.ErrnoException: sendto failed: ECONNRESET (Connection reset by peer)
08-04 19:22:35.254: E/VideoMap(19481):  at libcore.io.Posix.sendtoBytes(Native Method)
08-04 19:22:35.254: E/VideoMap(19481):  at libcore.io.Posix.sendto(Posix.java:156)
08-04 19:22:35.254: E/VideoMap(19481):  at libcore.io.BlockGuardOs.sendto(BlockGuardOs.java:177)
08-04 19:22:35.254: E/VideoMap(19481):  at libcore.io.IoBridge.sendto(IoBridge.java:466)
08-04 19:22:35.254: E/VideoMap(19481):  ... 20 more
А вот код отправки видео на сервер
Java
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
package com.ua.videmap1.rest.api;
 
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
 
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.preference.PreferenceManager;
import android.util.Log;
import android.widget.Toast;
 
import com.ua.videomap1.MainActivity;
import com.ua.videomap1.Sector;
import com.ua.videomap1.Video;
 
/**
 * Created by Stewie on 04.01.14.
 */
public class FileUploader extends AsyncTask<Video, Integer, Void> {
    
    private static String upLoadServerUri = "http://nicemir.com/videomap/api.php?addVideo";
    public static int uploadResult = 0;
    private static Context context;
 
    public FileUploader(String url) {
        upLoadServerUri = url;
    }
 
    @Override
    protected Void doInBackground(Video... objects) {
        
        upLoad2Server(objects[0]);
        return null;
    }
 
    private static int upLoad2Server(Video video) {
        int serverResponseCode = -1;
 
        String fileName = video.get_url();
        
        HttpURLConnection conn = null;
        DataOutputStream dos;
        String lineEnd = "\r\n";
        String twoHyphens = "--";
        String boundary = "*****";
        int bytesRead, bytesAvailable, bufferSize;
        byte[] buffer;
        int maxBufferSize = 1 * 1024 * 1024;
 
        File sourceFile = new File(fileName);
        if (!sourceFile.isFile()) {
            Log.e("VideoMap", "Source File Does not exist");
            Toast.makeText(MainActivity.handler, "Source File Does not exist", Toast.LENGTH_LONG).show();
            uploadResult = -100;
        }
        try {
            FileInputStream fileInputStream = new FileInputStream(sourceFile);
            URL url = new URL(upLoadServerUri);
            conn = (HttpURLConnection) url.openConnection();
            conn.setDoInput(true);
            conn.setDoOutput(true);
            conn.setUseCaches(false);
            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("filename", fileName);
            conn.setRequestProperty("name", video.get_name());
            conn.setRequestProperty("date", video.get_date());
            conn.setRequestProperty("tag", video.get_tag());
            conn.setRequestProperty("longitude", video.get_lng());
            conn.setRequestProperty("latitude", video.get_lat());
            conn.setRequestProperty("ukey", video.getToken());
 
            Sector sector = MapLocator.convertLatLng(video.getPosition());
            conn.setRequestProperty("sector_lat", Integer.toString(sector.getSector_lat()));
            conn.setRequestProperty("sector_lng", Integer.toString(sector.getSector_lng()));
            dos = new DataOutputStream(conn.getOutputStream());
 
            /*dos.writeBytes(twoHyphens + boundary + lineEnd);
            dos.writeBytes("Content-Disposition: form-data; name=\"uploaded_file\";filename=\""+ fileName + "\"" + lineEnd);
            dos.writeBytes(lineEnd);*/
 
            bytesAvailable = fileInputStream.available();
            Log.i("VideoMap", "Initial .available : " + bytesAvailable);
 
            bufferSize = Math.min(bytesAvailable, maxBufferSize);
            buffer = new byte[bufferSize];
 
            bytesRead = fileInputStream.read(buffer, 0, bufferSize);
 
            while (bytesRead > 0) {
                dos.write(buffer, 0, bufferSize);
                bytesAvailable = fileInputStream.available();
                bufferSize = Math.min(bytesAvailable, maxBufferSize);
                bytesRead = fileInputStream.read(buffer, 0, bufferSize);
            }
 
            dos.writeBytes(lineEnd);
            dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
 
            serverResponseCode = conn.getResponseCode();
            String serverResponseMessage = conn.getResponseMessage();
 
            Log.i("Upload file to server", "HTTP Response is : " + serverResponseMessage + ": " + serverResponseCode);
            Log.i("Upload file to server", fileName + " File is written");
            fileInputStream.close();
            dos.flush();
            dos.close();
        } catch (MalformedURLException ex) {
            ex.printStackTrace();
            Log.e("Upload file to server", "error: " + ex.getMessage(), ex);
            //Toast.makeText(MainActivity.handler, "error: " + ex.getMessage(), Toast.LENGTH_LONG).show();
            uploadResult = -200;
        } catch (Exception e) {
            e.printStackTrace();
            //Toast.makeText(MainActivity.handler, "error: " + e.getMessage(), Toast.LENGTH_LONG).show();
            uploadResult = -300;
        }
 
        try {
            BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line;
            while ((line = rd.readLine()) != null) {
                Log.i("VideoMap", "RES Message: " + line);
            }
            rd.close();
        } catch (IOException ioex) {
            Log.e("VideoMap", "error: " + ioex.getMessage(), ioex);
            //Toast.makeText(MainActivity.handler, "error: " + ioex.getMessage(), Toast.LENGTH_LONG).show();
            uploadResult = -1;
        }
        uploadResult = serverResponseCode;
        return serverResponseCode;
    }
}
Может кто сталкивался и знает как это починить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2014, 20:42     Sendto failed: ECONNRESET (Connection reset by peer)
Посмотрите здесь:

Android Conversion to Dalvik format failed with error 1
Передача connection/statement во фрагмент Android
Android Installation failed due to invalid APK file
Android Studio. Установка приложения на эмулятор. Application Installation Failed Android
Android Не компилируется приложение. Failed to complete Gradle execution
Android Genymotion: Initialize Engine: failed
Ошибка: open failed: ENOENT (No such file or directory) Android
Android Android studio failed to load a virtual device. как запустить вирт.устр-во?
Android Interner Connection Online
Android Не получается запустить проект (в android studio пишет Gradle 'MyApp' project refresh failed)
Android Восстановить состояние проекта после git reset
Не запускается приложение: Gradle sync failed: A problem occurred configuring project ':app' Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 03:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru