![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Есть ClientSocket , установлено NonBlocking. Засасываю в StringLi
Softik © (2003-02-17 15:11:00)Есть ClientSocket , установлено NonBlocking. Засасываю в StringList (StringList1.Add(Socket.ReceiveText)),но он только по 1460 байт засасывает (длина stringlist1.string[i]), и получаеться обрезаеться немного.
Как мне увеличить это? (кол-во байт)
подскажите, не пойму, не нашел никаких свойств в ClientSocket.
Digitman (2003-02-18 09:01:00) [1]
> простая подача байтов
Почему же тогда - SendText() ? Почему не SendBuf() ? И - где анализ результата вызова SendText() ? Где обработка On[Client]Write ?
> Сервер сам обрубает
Кого он "обрубает" ??) Я не понял.
Softik (2003-02-17 20:52:00) [2]ну простая подача байтов которую мне надо принять, вот и все.
Сервер сам обрубает, когда все байты переданы.
Digitman (2003-02-17 16:16:00) [3]
> принять ВСЕ даныые
и каков протокол инф.обмена у тебя ?
Softik (2003-02-17 16:08:00) [4]принимаю с сервера по порту данные, потом он сразу отключается.
мне нужно просто принять ВСЕ даныые и желательно в какой-нибудь удобноваримом виде, например в StringList.
Digitman (2003-02-17 16:02:00) [5]Ты хотя бы задачу сформулируй конкретно) ... прежде чем подскажки клянчить)
Softik (2003-02-17 15:52:00) [6]а как тогда сделать, подскажи пожалуйста!
Digitman (2003-02-17 15:46:00) [7]Ожидать, что каждый вызов приемником метода ReceiveText() вернет в точности то, что было послано передатчиком вызовом соотв.метода SendText() нельзя. Т.е. однозначного соответствия "переданная строка = принятая строка" и "кол-во посылок = кол-во событий OnRead()" нет и быть не может.
Вот вполне реальная ситуация :
>передатчик - SendText("XXX"), приемник - ReceiveText()=""
>передатчик - SendText("YYY"), приемник - ReceiveText()="XX"
>передатчик - SendText("ZZZ"), приемник - ReceiveText()="XY"
>..............................приемник - ReceiveText()="Y"
>..............................приемник - ReceiveText()="YZZ"
>..............................приемник - ReceiveText()="Z"
Протокол - поточный. Делай выводы
Кр.того, без анализа передатчиком результата вызова SendText()и обработки передатчиком события OnWrite() дальнейшие "потуги" в реализации транспорта на неблок.гнездах лишены смысла и работать все это как положено не будет.