Вниз
Скачать: CL | DM;

Есть ClientSocket , установлено NonBlocking. Засасываю в StringLi   Найти похожие ветки 

← →
Softik   (2003-02-17 15:11) [0]

Есть ClientSocket , установлено NonBlocking. Засасываю в StringList (StringList1.Add(Socket.ReceiveText)),но он только по 1460 байт засасывает (длина stringlist1.string[i]), и получаеться обрезаеться немного.
Как мне увеличить это? (кол-во байт)
подскажите, не пойму, не нашел никаких свойств в ClientSocket.


← →
Digitman ©   (2003-02-17 15:46) [1]

Ожидать, что каждый вызов приемником метода ReceiveText() вернет в точности то, что было послано передатчиком вызовом соотв.метода SendText() нельзя. Т.е. однозначного соответствия "переданная строка = принятая строка" и "кол-во посылок = кол-во событий OnRead()" нет и быть не может.

Вот вполне реальная ситуация :

>передатчик - SendText("XXX"), приемник - ReceiveText()=""
>передатчик - SendText("YYY"), приемник - ReceiveText()="XX"
>передатчик - SendText("ZZZ"), приемник - ReceiveText()="XY"
>..............................приемник - ReceiveText()="Y"
>..............................приемник - ReceiveText()="YZZ"
>..............................приемник - ReceiveText()="Z"

Протокол - поточный. Делай выводы


Кр.того, без анализа передатчиком результата вызова SendText()и обработки передатчиком события OnWrite() дальнейшие "потуги" в реализации транспорта на неблок.гнездах лишены смысла и работать все это как положено не будет.


← →
Softik   (2003-02-17 15:52) [2]

а как тогда сделать, подскажи пожалуйста!


← →
Digitman ©   (2003-02-17 16:02) [3]

Ты хотя бы задачу сформулируй конкретно) ... прежде чем подскажки клянчить)


← →
Softik   (2003-02-17 16:08) [4]

принимаю с сервера по порту данные, потом он сразу отключается.
мне нужно просто принять ВСЕ даныые и желательно в какой-нибудь удобноваримом виде, например в StringList.


← →
Digitman ©   (2003-02-17 16:16) [5]


> принять ВСЕ даныые


и каков протокол инф.обмена у тебя ?


← →
Softik   (2003-02-17 20:52) [6]

ну простая подача байтов которую мне надо принять, вот и все.
Сервер сам обрубает, когда все байты переданы.


← →
Digitman ©   (2003-02-18 09:01) [7]


> простая подача байтов


Почему же тогда - SendText() ? Почему не SendBuf() ? И - где анализ результата вызова SendText() ? Где обработка On[Client]Write ?


> Сервер сам обрубает


Кого он "обрубает" ??) Я не понял.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
14-30511
Archon Kazansky
2003-03-20 09:33
2003.04.10
---|Ветка была без названия|---


14-30581
Ильдар
2003-03-25 10:07
2003.04.10
vcldb60.bpl


4-30642
SeF
2003-02-07 10:14
2003.04.10
UpdateResource


1-30373
Петров Денис
2003-03-29 12:19
2003.04.10
Office-подобный MDI-интерфейс


6-30495
S@shka
2003-02-17 11:20
2003.04.10
TIdTCPClient через HTTP-PROXY




   Наверх