|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.03.2013, 18:28 | #1 |
Форумчанин
Регистрация: 16.03.2013
Сообщений: 599
|
TClient~ServerSocket. Передача текста/файла (чередование).
Уже неделю бьюсь над проблемой передачи файла и текста по очереди, то-есть:
1. Клиент отсылает запрос на сервер о передаче файла (бинарного) 2. Сервер отвечает (старт или ошибка) и начинает посылать файл (если старт). 3. Клиент получает сообщение о начале (или неудаче) отправки файла и переходит в режим получения потока. 4. Получает файл (или при дисконнекте), переходит обратно в режим получения текстовых команд. Собственно таким решение вижу я (или же саму проблему). У меня не получается организовать это правильно. Файл либо не передается, либо передается несколько килобайт. Файл бинарный, собственно в этом и заключается проблема, с текстовиками у меня все работало, но там и прием осуществлялся через string. Функции клиента, "как я это делаю" у меня нет, потому что я пробовал много разных вариантов и в данном случае в программе сохранился не рабочий. Функция сервера, собсно, само получение команды и отправка потока: Код:
alextrof94$gmail.com
|
16.03.2013, 19:48 | #2 |
Участник клуба Подтвердите свой е-майл
Регистрация: 26.01.2008
Сообщений: 1,897
|
Привер передачи файла. Посмотри, может, что сможешь перетащить к себе.
|
16.03.2013, 20:09 | #3 |
Форумчанин
Регистрация: 16.03.2013
Сообщений: 599
|
Это передача НЕ БИНАРНЫХ файлов. И да. Такой способ у меня работал, только вот БИНАРНЫЕ файлы этим способом не передать...
alextrof94$gmail.com
|
17.03.2013, 17:58 | #4 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
Всё передаётся, просто размер буфера для передачи потока с помощью этих компонент - 8 кб, и надо передавать как раз по 8 кб, а потом собирать вместе.
Вот в TTcpServer TTcpClient вроде нет таких проблем, но там немного посложнее организованы прочие операции. Вот ещё темочка с примером http://programmersforum.ru/showthread.php?t=225551 |
18.03.2013, 03:08 | #5 |
Форумчанин
Регистрация: 16.03.2013
Сообщений: 599
|
С проблемой разобрался.
Скажу одно - с3.14жжено. Я просто решил полностью перейти на потоки, и ОЧУДО, я нашел то, что искал.
Пришлось конечно доводить до ума, но все таки все работает нормально. Закомментированый код сервера: Код:
alextrof94$gmail.com
Последний раз редактировалось alextrof94; 18.03.2013 в 03:14. |
18.03.2013, 03:08 | #6 |
Форумчанин
Регистрация: 16.03.2013
Сообщений: 599
|
продолжение
НЕзакомментированый код клиента (по сути клон сервера, за исключением прогрессбара и передачи того же файла, что и получаем):
Код:
alextrof94$gmail.com
Последний раз редактировалось alextrof94; 18.03.2013 в 03:15. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
передача сообщений через serversocket и clientsocket | virtuhay266 | Помощь студентам | 1 | 14.12.2011 22:54 |
ServerSocket и ClientSocket передача буфера | Тутонхамон | Работа с сетью в Delphi | 5 | 15.04.2011 13:34 |
Передача данных StringGrid через ServerSocket - ClientSocket | Polotenchik | Общие вопросы Delphi | 4 | 18.03.2010 01:42 |
ClientSocket,ServerSocket передача данных | Torvald | Работа с сетью в Delphi | 3 | 07.09.2009 03:59 |
Передача текста файла.... | prizrak1390 | Общие вопросы Delphi | 1 | 23.06.2008 10:58 |