|
|
|
Чтение из сокета и обработка ошибок
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Есть клиент, который закачивает файл на сервер и есть сервер, который соответственно принимает этот файл. Вот код сервера, который осуществляет чтение из сокета и запись в файл: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Если во время закачки закрыть клиента, то сработает блок catch, который удалит недописанный файл. Но я хочу сделать еще на клиенте кнопку Cancel, которая будет делать тоже самое: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Вот только при нажатии на нее, ошибки на сервере не генерируется, и соотвественно выполняется только блок finally. В чем разница между socket.close и просто закрытием окна? И можно ли как-нибудь сгенерировать последнее не закрывая клиента? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 14:15 |
|
||
|
Чтение из сокета и обработка ошибок
|
|||
|---|---|---|---|
|
#18+
Это можно сделать по-нормальному - создать протокол, по которому сначала передается размер пересылаемого файла. Если полученных из сокета на сервере данных меньше, чем указано - это оно и есть. Кстати, рекомендую присмотреться к блоку обработки ошибок - возможна повторная попытка закрытия сокета при возникновении исключения в методе close(). Правильнее было бы закрывать файл в блоке finally и удалять файл в нем же при наличии ошибки ввода-вывода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 14:45 |
|
||
|
Чтение из сокета и обработка ошибок
|
|||
|---|---|---|---|
|
#18+
Я думал уже о передаче вместе с именем файла еще и его размер. Так и сделаю, и соответственно блок catch удалю, а проверку размера буду делать в finally. Просто хотел разобраться, как сервер различает, что клиента просто закрыли% ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 15:11 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=33602628&tid=2149913]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
429ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
23ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 718ms |

| 0 / 0 |
