Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Отладка кода Клиент/Сервер  (Прочитано 7026 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Merzaffka
Интересующийся

ru
Offline Offline

« : 19-07-2011 06:40 » 

Пишу чат, такой, чтобы Сервер при нажатии кнопки начал генерировать последовательность битов, и по отдному битику BitOutPdFC передавал клиенту.
Код:


Код:
static char RegMprdFC = 1;
char BitOutPdFC=(RegMprdFC&0x01)^((RegMprdFC&0x8)>>3);
RegMprdFC=(RegMprdFC>>1)|(BitOutPdFC<<3);
ServerSocket1->Socket->Connections[0]->SendBuf(&BitOutPdFC,sizeof(BitOutPdFC));
Тот, в свою очередь, принимал, записывал бит в переменную BitPd , прогонял через операции:

Код:


Код:
static char RegMprmFC = 1;
char BitPd= ReceiveBuf(&BitOutPdFC, sizeof(BitOutPdFC));
RegMprmFC=(RegMprmFC>>1)|((BitPd)<<3);
BitOutPmFC=(RegMprmFC&0x01)^((RegMprmFC&0x08)>>3);

А дальше выводил в окне уже получившийся BitOutPmFC

Но если я делаю именно таким образом, то возникает куча ошибок(((
Мб кто-нибудь подскажет как правильно передавать и принимать бит, и записывать его в переменную?

Добавлено через 33 секунды:
Вот весь код программы:
Код:


Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(!Button1->Tag)
        {
        ServerSocket1->Port=Edit1->Text.ToInt();
ServerSocket1->Active=true;
                Button1->Caption="Выключить сервер";
        }
        else
        {
        ServerSocket1->Active=false;
                Button1->Caption="Запустить сервер";
        }


        Button1->Tag=!Button1->Tag;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ServerSocket1ClientConnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
StaticText1->Caption="Соединение";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientDisconnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
StaticText1->Caption="Нет соединения";
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)
{
if(!Button3->Tag)
        {
if(!ServerSocket1->Active)
        {
        Application->MessageBox("Сервер не работает", "Error", MB_OK|MB_ICONERROR);
                return;
        }

        if(!ServerSocket1->Socket->ActiveConnections)
        {
        Application->MessageBox("Клиент не подсоединён", "Error", MB_OK|MB_ICONERROR);
                return;
        }
                Timer1->Enabled=true;
                Button3->Caption="Завершить передачу";
        }
        else
        {
        Timer1->Enabled=false;
                Button3->Caption="Передача информации";
        }
        Button3->Tag=!Button3->Tag;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if(ServerSocket1->Active&&ServerSocket1->Socket->ActiveConnections)
        {
        static char RegMprdFC = 1;
        char BitOutPdFC=(RegMprdFC&0x01)^((RegMprdFC&0x8)>>3);
        RegMprdFC=(RegMprdFC>>1)|(BitOutPdFC<<3);
        ServerSocket1->Socket->Connections[0]->SendBuf(&BitOutPdFC, sizeof(BitOutPdFC));

        }
        else
        {
        Timer1->Enabled=false;
                Button3->Tag=0;
                Button3->Caption="Подключиться к серверу";
        }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Memo1->Lines->Clear();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
ClientSocket1->Address=Edit3->Text;
        ClientSocket1->Port=Edit2->Text.ToInt();
        ClientSocket1->Active=!ClientSocket1->Active;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Connect(TObject *Sender,
      TCustomWinSocket *Socket)
{
Button2->Caption="Отсоединиться";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Disconnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
Button2->Caption="Соединиться";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Error(TObject *Sender,
      TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
ErrorCode=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Read(TObject *Sender,
      TCustomWinSocket *Socket)


{      static char RegMprmFC = 1;
        char BitPd= ReceiveBuf(&BitOutPdFC, sizeof(BitOutPdFC));
        RegMprmFC=(RegMprmFC>>1)|((BitPd)<<3);
        BitOutPmFC=(RegMprmFC&0x01)^((RegMprmFC&0x08)>>3);
Memo1->Lines->Add(Socket->ReceiveText);
}
« Последнее редактирование: 19-07-2011 06:40 от Merzaffka » Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 19-07-2011 07:06 » new

Какие ошибки?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines