Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.07;
Скачать: CL | DM;

Вниз

Помогите с сокетами. ClientSocket, ServerSocket   Найти похожие ветки 

 
Алексей   (2004-08-30 09:16) [0]

Проблема в следующем: использую я TClientSocket, TServerSocket,
при обработке собатий onRead, я должен отправить команду, размер которой превышает
8 кб(максимальный размер, точно не помню). Пробывал отправлять порциями по 4 кб, но
при использовании Socket.SendBuf возникают ошибки, то есть процедура не срабатывает
сразу. К Примеру если вызвать два раза эту метод, то на клиенту придет одна команда
размером 8 кб, как с этим бороться? Я пробывал вызывать после каждого вызова Socket.SendBuf
Application.ProcessMessage, но это помогло только, если клиент и сервер находятся в одной
программе. В итоге при отправке 100 пакетов по 4 кб, доходят максимум 5, и то размером по
8 кб с копейками.

Может уже есть реализация этих двух классов, но с подержкой пересылки больших объёмов данных.

А да кстати, если что я просмотрел весь FAQ, там есть подобный вопрос, но исходинки там не работают.
К примеру исходник с передачей файла(простой способ передачи файла через сокет) не будет работать
с фалами больше 8 кб(Точную цифру не помню).

На даюсь суть проблемы есна.


 
Rouse_ ©   (2004-08-30 09:27) [1]

Помести буффер в MemoryStream и вызови SendStream остальное он за тебя выполнит...


 
Алексей   (2004-08-31 03:12) [2]

Если размер стрима большой, то всё равно он не доходит до клиента полностью(Доходит только 8 кб). Я уже пробывал через поток, в исходнике компонента размер патока вообще ограничен 4096 байтами, поэтому это проблемы не решает. А в хелпе написано Mircosoft Socket Api, что размер отправляемы данных ограничен константой и размер этой константы, что-то около 8 кб.


 
Digitman ©   (2004-08-31 09:03) [3]


> Если размер стрима большой, то всё равно он не доходит до
> клиента полностью


не выдумывай, оч даже замечательно доходит
ты просто или неверно отправляешь или неверно принимаешь его


>  в исходнике компонента размер патока вообще ограничен 4096
> байтами


где ты это увидел там ? нет там такого
а 4кб-массив, который ты там увидел - это не поток, это временный буфер



Страницы: 1 вся ветка

Текущий архив: 2004.11.07;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.038 c
1-1098791757
Maxximusss
2004-10-26 15:55
2004.11.07
Сделать MainForm невидимым.


4-1096476106
xman
2004-09-29 20:41
2004.11.07
Какой процесс запущен?


14-1098411951
Leaner
2004-10-22 06:25
2004.11.07
Преимущества сервиса


1-1098796405
Андерсон
2004-10-26 17:13
2004.11.07
Передача фокуса формам


9-1088581285
Proger
2004-06-30 11:41
2004.11.07
Создание программной маски?