рефераты рефераты
Главная страница > Курсовая работа: Создание сетевой игры  
Курсовая работа: Создание сетевой игры
Главная страница
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
География экономическая география
Геодезия
Геология
Госслужба
Гражданский процесс
Гражданское право
Иностранные языки лингвистика
Искусство
Историческая личность
История
История государства и права
История отечественного государства и права
История политичиских учений
История техники
История экономических учений
Биографии
Биология и химия
Издательское дело и полиграфия
Исторические личности
Краткое содержание произведений
Новейшая история политология
Остальные рефераты
Промышленность производство
психология педагогика
Коммуникации связь цифровые приборы и радиоэлектроника
Краеведение и этнография
Кулинария и продукты питания
Культура и искусство
Литература
Маркетинг реклама и торговля
Математика
Медицина
Реклама
Физика
Финансы
Химия
Экономическая теория
Юриспруденция
Юридическая наука
Компьютерные науки
Финансовые науки
Управленческие науки
Информатика программирование
Экономика
Архитектура
Банковское дело
Биржевое дело
Бухгалтерский учет и аудит
Валютные отношения
География
Кредитование
Инвестиции
Информатика
Кибернетика
Косметология
Наука и техника
Маркетинг
Культура и искусство
Менеджмент
Металлургия
Налогообложение
Предпринимательство
Радиоэлектроника
Страхование
Строительство
Схемотехника
Таможенная система
Сочинения по литературе и русскому языку
Теория организация
Теплотехника
Туризм
Управление
Форма поиска
Авторизация




 
Статистика
рефераты
Последние новости

Курсовая работа: Создание сетевой игры

    int i=StrLen(CompName);

    if(i>=50)

    {

       CompName[49]='\0';

    }

    unsigned long cbWritten;

    char BufExchange[50];

    MyCurrNomMessage=1;

    strcpy(BufExchange,"1;");

    strcat(BufExchange,CompName);

    WriteFile(SendMailslotHandle,BufExchange, strlen(BufExchange)+1, &cbWritten, NULL);

 }

}

//-----------------------прием и accept-----------------------------------------

void __fastcall TMainForm::TimerMailSlotTimer(TObject *Sender)

{

 if(IsVisitApplicationBox) return;

 int rc;

 unsigned long cbMessages, cbMsgNumber, cbRead;

 char *BufExchange;

 rc = GetMailslotInfo(ReceiveMailslotHandle, NULL, &cbMessages, &cbMsgNumber, NULL);

 if (!rc)

 {

     Application->MessageBox("Ошибка GetMailslotInfo","Ошибка",MB_OK+MB_ICONHAND);

     Application->Terminate();

 }

 if (cbMsgNumber == 0) return;

 BufExchange = new char[cbMessages];

 ZeroMemory(BufExchange, cbMessages);

 if (ReadFile(ReceiveMailslotHandle, BufExchange, cbMessages, &cbRead, NULL))

 {

     int HisCurrNomMessage;

     char Buftmp[150];

     strcpy(Buftmp,BufExchange);

     HisCurrNomMessage=atoi(strtok(BufExchange,";"));

     if(HisCurrNomMessage>HisPrevNomMessage)

     {

        HisPrevNomMessage=HisCurrNomMessage;

        char *Buf;

        Buf=AnsiStrScan(Buftmp,';');

        Buf++;

        if(IsServer && HisCurrNomMessage==1)

        {

            char BufConnect[100];

            sprintf(BufConnect, "\\\\%s\\mailslot\\msclient" , Buf);

            SendMailslotHandle = CreateFile(BufConnect, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);

            if (SendMailslotHandle == INVALID_HANDLE_VALUE)

            {

                Application->MessageBox("Ошибка при открытии mailslot","Ошибка",MB_OK+MB_ICONHAND);

                Application->Terminate();

            }

            char *strPered=DannieToChar(0,KolKub,MaxOch);

            MailSlotSend(strPered);

            InterfaceBeginNewGame();

            ChangeInterfacePerehodHoda(1);

        }

        else

        {

            Priem(CharToMas(Buf));

        }

     }

 }

 delete [] BufExchange;

}

//------------------------отправка----------------------------------------------

void __fastcall TMainForm::MailSlotSend(char *Buf)

{

 unsigned long cbWritten;

 char BufExchange[100];

 MyCurrNomMessage++;

 itoa(MyCurrNomMessage,BufExchange,10);

 strcat(BufExchange,";");

 strcat(BufExchange,Buf);

 WriteFile(SendMailslotHandle, BufExchange, strlen(BufExchange)+1, &cbWritten, NULL);

}

//----------------------разрыв соединения---------------------------------------

void __fastcall TMainForm::MailSlotCloseConnection(void)

{

 CloseHandle(SendMailslotHandle);

 CloseHandle(ReceiveMailslotHandle);

 TimerMailSlot->Enabled = false;

 MyCurrNomMessage=0;

 HisPrevNomMessage=0;

}


Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9

рефераты
Новости