Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.07.2011, 10:54   #1
Merzaffka
 
Регистрация: 15.03.2011
Сообщений: 5
Вопрос Отладка кода Клиент/Сервер

Пишу чат, такой, чтобы Сервер при нажатии кнопки начал генерировать последовательность битов, и по отдному битику 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

Но если я делаю именно таким образом, то возникает куча ошибок(((
Мб кто-нибудь подскажет как правильно передавать и принимать бит, и записывать его в переменную?
Merzaffka вне форума Ответить с цитированием
Старый 14.07.2011, 10:55   #2
Merzaffka
 
Регистрация: 15.03.2011
Сообщений: 5
По умолчанию

Вот весь код программы:
Код:
//---------------------------------------------------------------------------

#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);
}
Merzaffka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отправить видео захват(с веб-Кам.) Клиент->Сервер->Клиент RODNOC Мультимедиа в Delphi 17 03.10.2010 22:31
сервер+клиент+клиент на телефон Razyiller Работа с сетью в Delphi 3 01.04.2010 20:10
Возможно-ли Клиент-серверное приложение типа Клиент(Pascal) а сервер(CGI)? Demol Работа с сетью в Delphi 1 21.04.2009 16:18
Клиент-сервер-клиент Кронос Работа с сетью в Delphi 3 24.08.2007 07:57