![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| Andrewtitoff |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 14.1.2008 Репутация: нет Всего: нет |
Пытаюсь послать файл, файл посылается, но прога все время вываливается с ошибками:
Access violation, Canvas does not allow drawing... =((( И как при приеме узнать размер пересылаемого файла что бы засунуть его в ReceiveBuf.., SizeOf(Buf) возвращает все время 4 ... =((( Вот текст моей программы:
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
||||
|
||||
| Andrewtitoff |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 14.1.2008 Репутация: нет Всего: нет |
Ясно, это я видел, просто я думал что можно как нить по человачески, как в TClientSocket
писать Len:=Socket.ReceiveLength;... =(((( |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Это не по человечески.
TCP/IP - это поток. Будут ли ещё данные или нет - известно только клиенту. Поэтому клиент и должен сообщить - щас передам столько-то байт, принимай... |
|||
|
||||
| Andrewtitoff |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 14.1.2008 Репутация: нет Всего: нет |
2 Snowy
Ну это то да, это я поросто привел пример с исходника где сервер отправляет клиенту..., то есть как я понял что теперь если использовать TcpServer & TcpClient то узнать размер пересылаемого файла нельзя, надо тока заранее это все отаравлять строкой?, так что ли получается? Ну это то ладно, я переживу, отправлю, слава богу с отправкой строк я разобрался..., а как мне файл то вообще послать, а то у меня файл то посылается, тока непонятные ошибки какие то и программа вылетает... =(((( |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Пересылай всё, как блок данных.
Все методы, типа SendStrings - это просто обёртки над отправкой блока данных, для удобства в конкретном случае. Всё передаваемое есть блок данных. Отправляй размер блока, потом сам блок. Так можно передать любые данные. Забудь про обёртки - всё есть байты. Пихай их непосредственно в буфер отправки. |
|||
|
||||
| Andrewtitoff |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 14.1.2008 Репутация: нет Всего: нет |
2 Snowy
Я с тобой полностью согласен по поводу "всё есть байты", так я изначально и спрашиваю как это сделать, исходник моей проги который я вывесил в самом начале работает тока наполовину... =(((, файл он передает, тока после этого вываливается в лучшем случае, а обычно вешает всю систему... =(((( Не мог бы ты написать мне рабочий пример(тока проверенный у себя, а то нерабочих то поно в инете) как переслать файл через TcpServer & TcpClient ?... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Сети" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |