Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Работа с сокетами...

299
24 августа 2005 года
3D Bob
885 / / 18.04.2005
К примеру..
 
Код:
void __fastcall TFormMain::ServerClientRead(TObject *Sender,
      TCustomWinSocket *Socket)
{
int Type;        
Socket->ReceiveBuf(&Type,sizeof(Type));

}

Допустим я хочу прочитать только первые 4 байта придящего сообщения и выполняю верхний код. НО.
Заметил такую вещь, что каждый раз при вызове
Socket->ReceiveBuf(&Type,sizeof(Type));
Событие ServerClientRead срабатывает по новому, до тех пор пока Socket->ReceiveLength() не будет равна нулю...и получается что в итого Type содержит последние 4 байта.... и это очень напрягает... Пришлось делать так...

 
Код:
int Type=0;
void __fastcall

TFormMain::ServerClientRead(TObject *Sender,
      TCustomWinSocket *Socket)
{
if (Type==0) Socket->ReceiveBuf(&::Type,sizeof(::Type));
ShowMessage(::Type);
::Type==0;
}


Но это очень напрягает... Неужели это правильно?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог