![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 10.12.2010
Сообщений: 6
|
![]()
Здравствуйте уважаемые пользователи данного форума.
Пишу программу клиент-сервер, клиент передаёт серверу файл, сервер его принимает, передача осуществляется через socket. Проблема в том, что на сервере в progressbar 'е отображается процесс приёма файла, а так как обновление его состояния происходит при приёме каждого нового пакета данных, то форма намертво подвисает пока файл не будет передан. На сервере параметр ServerType = stNonBlocking. (СЕРВЕР принимает файл) Пришёл к выводу о том, что нужно принимать данные с ServerType = stThreadBlocking. И вот проблема. Никак не могу понять как принять данные и не только данные в виде короткой команды, но и довольно большие файлы. Надеюсь на Вашу помощь. Приведите пожалуйста код сервера, позволяющий ему принимать файлы при ServerType = stThreadBlocking. |
![]() |
![]() |
![]() |
#2 |
Регистрация: 10.12.2010
Сообщений: 6
|
![]()
Ну неужели никто не сталкивался с подобным? Очень нужно реализовать, помогите пожалуйста!
|
![]() |
![]() |
![]() |
#3 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
![]()
Прием данных в режиме stThreadBlocking ничем не отличается от приема в режиме stNonBlocking.
|
![]() |
![]() |
![]() |
#4 |
Регистрация: 10.12.2010
Сообщений: 6
|
![]()
Так как же не отличается, в таком режиме даже событие onRead не возникает! Или я что-то не так делаю и он должно возникать?
|
![]() |
![]() |
![]() |
#5 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
![]()
А причем здесь событие ?
Прием передаваемой инф.ции осуществляется в точности теми же имеющимися у класса TCustomWinSocket методами ReceiveText и ReceiveBuf. |
![]() |
![]() |
![]() |
#6 |
Регистрация: 10.12.2010
Сообщений: 6
|
![]()
ну это понятно, но как вообще дойти до этого приёма? должно же возникать какое то событие, в котором будет осуществляться этот приём?! Вот как описать это событие?
|
![]() |
![]() |
![]() |
#7 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
![]()
> должно же возникать какое то событие, в котором будет осуществляться этот приём?
В блокирующем режиме не должно. Да и зачем оно тебе ? Просто в цикле читай из сокета столько данных, сколько ожидаешь получить от отправителя. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как сделать что бы при нахождении файла *rep_01.* и файла *rep_015.* программа их раскидывал по разным п | MixanMM | Общие вопросы Delphi | 5 | 19.11.2009 12:59 |
Передача файла по Socket | KoBRaAndrey | Работа с сетью в Delphi | 2 | 13.11.2009 20:05 |
Приём данных с com порта | kyc0k | Помощь студентам | 3 | 28.03.2008 15:04 |
Приём изображений | Terran | Работа с сетью в Delphi | 2 | 15.12.2007 15:03 |
При выполнении запроса из проекта пропадает связь с сервером | D-mon | БД в Delphi | 4 | 19.11.2007 12:24 |