|
|
|
Передача нескольких файлов по сети
|
|||
|---|---|---|---|
|
#18+
Прога работает и передает фал когда он в одном экземпляре, но как только файлов становится несколько возникает проблема. Ругается в момент передачи размера второго файла. Кто сталкивался с подобным подскажите пожалуйсто. сервер try { ss=new ServerSocket(9002); while(true){ socket=ss.accept(); //outS = new PrintWriter(socket.getOutputStream(),true); din=new DataInputStream(socket.getInputStream()); int filesCount=din.readInt(); area.setText("Передается " + filesCount + " файлов\n"); System.out.println("Передается " + filesCount + " файлов\n"); for (int i =0; i<filesCount; i++){ ei=i; System.out.println("Ожидание получения размера файла"); fileS=din.readLong(); System.out.println("Ожидание получения имени файла"); fIn=din.readUTF(); System.out.println("Пытаюсь скопировать файл "+fIn+" размер - "+fileS); fout=new FileOutputStream("D:/dst/"+fIn); byte[] buffer = new byte[64*1024]; int count, total=0; while((count = din.read(buffer)) != -1){ total += count; fout.write(buffer, 0, count); if(total == fileS){ System.out.println("Копирование файла завершено"); break; } } outS = new PrintWriter(socket.getOutputStream(),true); outS.write("Server get file "+fIn); outS.close(); fout.close(); } din.close(); } }catch(IOException e){System.out.println("Ошибка работы итерация "+ei);} } Клиент int count=vec.size(); try { out = new DataOutputStream(socket.getOutputStream()); out.writeInt(count); }catch(IOException e){}; String comp=null; for (int i=0; i<vec.size(); i++){ System.out.println("Пердаю "+i+"-й файл "+vec.get(i).getName()); try { System.out.println("FILESIZE "+vec.get(i).length()+" FILENAME "+vec.get(i).getName()); int w=0; out.writeLong(vec.get(i).length()); out.writeUTF(vec.get(i).getName()); }catch(IOException e){System.out.println("ERROR - Не могу передать размер и имя файла");} try { File f = vec.get(i); FileInputStream in = new FileInputStream(f); byte [] buffer = new byte[64*1024]; int counter; while((counter = in.read(buffer)) != -1){ out.write(buffer, 0, counter); } out.flush(); in.close(); //out.close(); BufferedReader inS = new BufferedReader(new InputStreamReader(socket.getInputStream())); int w=0; while(!(comp=inS.readLine()).equals("Server get file "+vec.get(i).getName())){ System.out.println(w++); } inS.close(); }catch(IOException e){System.out.println("ERROR - Не могу передать файл");} System.out.println(comp); } } Извиняюсь за внешний вид но теги почему то не работают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2013, 13:49:16 |
|
||
|
Передача нескольких файлов по сети
|
|||
|---|---|---|---|
|
#18+
Хотите получить ответ - оформите нормально код (у всех тэги работают, а у вас нет? :)) и покажите, какая ошибка вылезает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2013, 14:00:33 |
|
||
|
Передача нескольких файлов по сети
|
|||
|---|---|---|---|
|
#18+
cdtyjvХотите получить ответ - оформите нормально код (у всех тэги работают, а у вас нет? :)) и покажите, какая ошибка вылезает. У меня теги не работают (кнопка). Приходится руками набирать. Нубы тем более не знают как. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2013, 14:01:35 |
|
||
|
Передача нескольких файлов по сети
|
|||
|---|---|---|---|
|
#18+
Ошибка вот. Но сокет нигде не закрывал Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. P.S. ну раз руками то руками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2013, 14:22:44 |
|
||
|
Передача нескольких файлов по сети
|
|||
|---|---|---|---|
|
#18+
Вероятно вы всё позакрывали после передачи файла. Вот второй файл в тот же сокет и не пролазит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2013, 14:26:12 |
|
||
|
Передача нескольких файлов по сети
|
|||
|---|---|---|---|
|
#18+
Например где? Код: sql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2013, 14:41:09 |
|
||
|
Передача нескольких файлов по сети
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. BufferedReader.close() -> InputStreamReader.close() -> SocketInputStream.close() -> Socket.close() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2013, 14:47:36 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38424456&tid=2128439]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 380ms |

| 0 / 0 |
