![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Странная фича ... TSocketClient/Server [Win95/98, Win2k]
Оши © (2004-07-14 11:49:00)Заметил интерестную особенность
что когда интенсивно начинаешь передовать строку клиенту/ам
иногда к ним приходит сдвоенная строка .
например :
if (SQLEventForm->ServerS->Active)
{
for (int i=0;i<SQLEventForm->ServerS->Socket->ActiveConnections;i++)
{
SQLEventForm->ServerS->Socket->Connections[i]->SendText("Hello World!");
}
}
значит клиент ловит
Hello World!
Hello World!
Hello World!Hello World! // а потом оппа , и видишь что сдвоенно
Hello World!
собсвенно как то неприятно :)
в чем может быть проблема ?
может кто сталкивался ?
Оши (2004-07-14 16:22:00) [1]понятно ...
Digitman (2004-07-14 15:35:00) [2]
> это как ?
это так : нет в Инди-компонентах ни OnRead ни OnWrite .. все транспортные вызовы выполняются синхронно
Оши (2004-07-14 14:15:00) [3]TIdTCPServer/TIdTCPClient
у себя нашел только TCPServer/TCPClient
да и можно по подробнее что за
"но про неблок.режим при этом забудь"
это как ?
Digitman (2004-07-14 12:45:00) [4]
> это можно решить как о по другому
можно.
воспользуйся, например, компонентами TIdTCPServer/TIdTCPClient, но про неблок.режим при этом забудь
Оши (2004-07-14 12:08:00) [5]ну про это я уже думал :)
просто думал это можно решить как о по другому ...
Анонимщик (2004-07-14 12:04:00) [6]Сокет гарантирует попадание данных к другой стороне в том же порядке, в каком они были отправлены, и больше ничего. Решение в том, чтобы сначала передавать заголовок, одно из поле которого - размер далее идущего логического куска данных.