С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Sendto failed: ECONNRESET (Connection reset by peer) - Программирование Android

04.08.2014, 20:42. Просмотров 2373. Ответов 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;
    }
}
Может кто сталкивался и знает как это починить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2014, 20:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Sendto failed: ECONNRESET (Connection reset by peer) (Программирование Android):

Ошибка Connection reset by peer - Delphi
ДУмаю этот вопрос интересует многих. Есть программа(типа чеккер), которая каждую секунду авторизируется на сайте через post запрос. После...

Apache Benchmark - Connection reset by peer (104) - Apache, htaccess
Здравствуйте! С помощью AB я выявляю как улучшается производительность при подключении Memcached. На одном VPS стоит Apache (prefork) на...

Обход error #10054 connection reset by peer - Delphi
Всем привет, при получении или отправке запросов на некий сайт X.com, то вылетает такая ошибка, гуглил, через try,except ...

Soket Error #10054 Connection reset by peer - Delphi
Здравствуйте, выдает Ошибку :( Вот код программы: procedure TForm1.sButton1Click(Sender: TObject); begin idIRC1.Nick:=':m1010711'; ...

HTTP->Get(): ошибка Socket Error # 10054. Connection reset by peer - C++ Builder
Суть проблемы - в заголовке темы, но объясню подробнее. В программе используется обычное получение страницы методом Get в помощью...

Netty exceptions (java.net.BindException, Connection reset by peer) - Java Сети
Привет. У меня возникла такая проблема. На клиенте при отправке сообщений с большой нагрузкой возникает java.net.BindException:...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2014, 20:42
Привет! Вот еще темы с ответами:

в программе во время выполнения возникают 2 ошибки :range check error и connection reset by peer - от чего? - C++ Builder
Доброго времени суток! Начал писать программу (нечто вроде удалённого администратора) вот что есть: ...

"socket error 10054 connection reset by peer" ошибка - Delphi
в общем при работе с этими 4мя строчками ошибка IdSMTP1.Port:=25; IdSMTP1.Host:='smtp.mail.ru'; ...

.NET 4.x C#,WCF, Connection reset, Unknown error. - C# WCF
Доброго времени суток. Есть сервис(C#, .NET 4, WCF) (весь код для иллюстрации проблемы, так же залил): IService.cs: public...

connection failed - SQL Server
Получилась такая ситуация всё работало хорошо, потом сегодня утром включаю комп, а базы не открываются((( пишет такую фигню connection...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.