Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблемы с посылкой файла [D6, Win95/98, Win2k, WinXP]


Dimushkin ©   (2002-09-12 17:50:00) 

размером более 32768

формирую буфер и шлю через TClientSoket командой SentBuf
в районе этой цифры приходят либо мусов либо нули

на коротких текстах все нормально в чем дело ума не приложу :-(


exchoper   (2002-09-20 15:10:00) [1]

Небольшое дополнение, отослаться тоже может не сразу все, недаром тебе SendBuf возвращает число отправленых байт, если оно отлично от "попыташного" то нужно доотправить, ну и так в цикле, при большом буфере так бывает


Dimushkin   (2002-09-19 14:35:00) [2]

> VN

СПАСИБО за указание правильного направления поиска ошибки (скажем так)
кстати это и в хелпе написано только как-то ВСКОЛЬЗЬ

:-)


REA   (2002-09-16 17:50:00) [3]

Сокеты поддерживаются компонентами Indy (в D7 встроены новые)


cyborg   (2002-09-15 19:07:00) [4]

Нет, речь не об этом, они вообще не могут подключиться к моему серверу, либо я к ихнему, тогда вопрос поставлю по другому, вот у моего провайдера есть хттп прокси на порту 3128 вроде, вот как например через этот прокси соединять сокеты как это может делать ICQ?


Vn   (2002-09-14 18:12:00) [5]

У меня была подобная проблема. Просто на СокетСервере при чтении обязательно контролируй количество принятых из буфера байт. Оно может отличаться в меньшую сторону от Socket.ReceiveLength.
var
s: string;
l,i: Integer;

begin
l := Socket.ReceiveLength;
SetLength(s,L+1);
i:=Socket.ReceiveBuf(s[1],l);
if i<>l then SetLength(s,i);
....
Setlength(s,0);
end;


cyborg   (2002-09-13 21:54:00) [6]

протокол незнаю.
Ну вот например в конторе одной к инету подключены компьютеры через прокси, или как он там называется, вот с этих компьютеров ко мне не могут достучаться. ICQ же умеет через прокси соединяться, думаю там сокеты используются.

:) что-то как-то по французски написал я...


Digitman   (2002-09-13 14:09:00) [7]

>cyborg

А протокол-то какой прокси поддерживает ? http ? ftp ? или еще какой-то ?


Digitman   (2002-09-13 14:03:00) [8]

>dimushkin

Ты код-то будешь приводить ? Или так и будешь яйцами в профиль и анфас довольствоваться ?

Без кода - никаких серьезных рекомендаций ты не получишь


dimushkin   (2002-09-13 12:09:00) [9]

Сегодня попробовал подробить посылаемый буфер по 16384 и даже меньше...

мусор появляется в районе 200 кБ...
кстати посылал и через SendText -> те же яйца виду с боку :-)


Akella   (2002-09-13 10:22:00) [10]

У меня таких проблем небыло.
Ты попробуй трасирнуть и перед отсылкой просмотреть твой буфер в памяти (Начиная с адреса и по смещению). Я думаю скорее всего ты туда запихиваешь что-то. А вообще при работе с SENDBUF у меня делфи глючило (и5и6)


cyborg   (2002-09-13 10:11:00) [11]

Digitman © воспользуюсь случаем и тут скажу, видимо вы не видели мою мессагу, как сокет через прокси заставить работать? Может ссылку на документацию (на русском языке) какую дадите или так расскажете?


Digitman   (2002-09-13 08:56:00) [12]

так ведь 32768 - это ж ЧИСЛО !!! А не цифра ....

Приводи код


Dimushkin   (2002-09-12 19:33:00) [13]

позиция в файле 32768 байт
от 3276.. до 3277.. - мусор (совсем не то что я посылаю) :-(


Digitman   (2002-09-12 18:37:00) [14]

>>в районе этой цифры

какой еще "цифры" ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо