Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania bez odpowiedzi
Viewing all articles
Browse latest Browse all 21942

c++ Builder 6 Sockety

$
0
0

Cześć,

mam na zadanie domowe w ramach lekcji informatyki zrobić kółko i krzyżyk na multiplayer w Builderze, nie działa mi odbieranie danych, wysyłanie natomiast funkcjonuje bez najmniejszego problemu. Próbowałem już wszystkiego i naprawdę nie wiem, co sprawia, że nie mogę odbierać danych.

Oto mój kod:

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#pragma link "ScktComp"

TForm2 *Form2;

//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
        : TForm(Owner)
{
        tura = true;
        Memo1->Clear();
        koniec = false;
        // 1 KOLKO
        // 2 KRZYZYK
        for (int i=1; i<10; i++)
        {
            t[i] = 0;
        }
}


void __fastcall TForm2::Image1Click(TObject *Sender)
{
        if(t[1] == 0 && koniec == false && tura == true)
        {
                if(serwer)
                {
                        Image1->Picture->Bitmap->LoadFromFile("o.bmp");
                        t[1] = 1;
                        sprawdz();
                        ServerSocket1->Socket->Connections[0]->SendText("1");
                        //msg = ServerSocket1->Socket->ReceiveText();

                }
                else
                {
                        Image1->Picture->Bitmap->LoadFromFile("x.bmp");
                        t[1] = 2;
                        sprawdz();
                }
        }
}
//---------------------------------------------------------------------------



//---------------------------------------------------------------------------

void __fastcall TForm2::Image2Click(TObject *Sender)
{
        if(t[2] == 0  && koniec == false  && tura == true)
        {
                if(serwer)
                {
                        Image2->Picture->Bitmap->LoadFromFile("o.bmp");
                        t[2] = 1;
                        sprawdz();
                        ServerSocket1->Socket->Connections[0]->SendText("2");
                }
                else
                {
                        Image2->Picture->Bitmap->LoadFromFile("x.bmp");
                        t[2] = 2;
                        sprawdz();
                }
        }
}
//---------------------------------------------------------------------------

void __fastcall TForm2::Image3Click(TObject *Sender)
{
        if(t[3] == 0 && koniec == false  && tura == true)
        {
                if(serwer)
                {
                        Image3->Picture->Bitmap->LoadFromFile("o.bmp");
                        t[3] = 1;
                        sprawdz();
                        ServerSocket1->Socket->Connections[0]->SendText("3");
                }
                else
                {
                        Image3->Picture->Bitmap->LoadFromFile("x.bmp");
                        t[3] = 2;
                        sprawdz();
                }
        }
}
//---------------------------------------------------------------------------

void __fastcall TForm2::Image4Click(TObject *Sender)
{
        if(t[4] == 0 && koniec == false  && tura == true)
        {
                if(serwer)
                {
                        Image4->Picture->Bitmap->LoadFromFile("o.bmp");
                        t[4] = 1;
                        sprawdz();
                        ServerSocket1->Socket->Connections[0]->SendText("4");
                }
                else
                {
                        Image4->Picture->Bitmap->LoadFromFile("x.bmp");
                        t[4] = 2;
                        sprawdz();
                }
        }
}
//---------------------------------------------------------------------------

void __fastcall TForm2::Image5Click(TObject *Sender)
{
        if(t[5] == 0 && koniec == false  && tura == true)
        {
                if(serwer)
                {
                        Image5->Picture->Bitmap->LoadFromFile("o.bmp");
                        t[5] = 1;
                        sprawdz();
                        ServerSocket1->Socket->Connections[0]->SendText("5");
                }
                else
                {
                        Image5->Picture->Bitmap->LoadFromFile("x.bmp");
                        t[5] = 2;
                        sprawdz();
                }
        }
}
//---------------------------------------------------------------------------

void __fastcall TForm2::Image6Click(TObject *Sender)
{
        if(t[6] == 0 && koniec == false  && tura == true)
        {
                if(serwer)
                {
                        Image6->Picture->Bitmap->LoadFromFile("o.bmp");
                        t[6] = 1;
                        sprawdz();
                        ServerSocket1->Socket->Connections[0]->SendText("6");
                }
                else
                {
                        Image6->Picture->Bitmap->LoadFromFile("x.bmp");
                        t[6] = 2;
                        sprawdz();
                }
        }
}
//---------------------------------------------------------------------------

void __fastcall TForm2::Image7Click(TObject *Sender)
{
        if(t[7] == 0 && koniec == false  && tura == true)
        {
                if(serwer)
                {
                        Image7->Picture->Bitmap->LoadFromFile("o.bmp");
                        t[7] = 1;
                        sprawdz();
                        ServerSocket1->Socket->Connections[0]->SendText("7");
                }
                else
                {
                        Image7->Picture->Bitmap->LoadFromFile("x.bmp");
                        t[7] = 2;
                        sprawdz();
                }
        }
}
//---------------------------------------------------------------------------

void __fastcall TForm2::Image8Click(TObject *Sender)
{
        if(t[8] == 0 && koniec == false  && tura == true)
        {
                if(serwer)
                {
                        Image8->Picture->Bitmap->LoadFromFile("o.bmp");
                        t[8] = 1;
                        sprawdz();
                        ServerSocket1->Socket->Connections[0]->SendText("8");
                }
                else
                {
                        Image8->Picture->Bitmap->LoadFromFile("x.bmp");
                        t[8] = 2;
                        sprawdz();
                }
        }
}
//---------------------------------------------------------------------------

void __fastcall TForm2::Image9Click(TObject *Sender)
{
        if(t[9] == 0 && koniec == false  && tura == true)
        {
                if(serwer)
                {
                        Image9->Picture->Bitmap->LoadFromFile("o.bmp");
                        t[9] = 1;
                        sprawdz();
                        ServerSocket1->Socket->Connections[0]->SendText("9");
                }
                else
                {
                        Image9->Picture->Bitmap->LoadFromFile("x.bmp");
                        t[9] = 2;
                        sprawdz();
                }
        }
}
//---------------------------------------------------------------------------





void __fastcall TForm2::Button1Click(TObject *Sender)
{
        if(serwer)
        {
                ServerSocket1->Close();
                ServerSocket1->Port = 4444;
                ServerSocket1->Open();
                ServerSocket1->Active = true;
                Memo1->Lines->Add("[+] Serwer uruchomiony");
        }
        else
        {
                ClientSocket1->Active = false;
                ClientSocket1->Address = adres;
                ClientSocket1->Port = 4444;
                ClientSocket1->Active = true;
                Memo1->Lines->Add("[+] Łączenie.....");
        }

}
//---------------------------------------------------------------------------
void __fastcall TForm2::ClientSocket1Read(TObject *Sender,
      TCustomWinSocket *Socket)
{
        ClientSocket1->Socket->Read(0);
        Memo1->Lines->Add("[+]Msg: " + Socket->ReceiveText());
}

void __fastcall TForm2::ServerSocket1ClientRead(TObject *Sender,
      TCustomWinSocket *Socket)
{
        Memo1->Lines->Add(Socket->ReceiveText());
}
void __fastcall TForm2::ServerSocket1ClientConnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
        Memo1->Lines->Add("[+] Nowy klient");
}

void __fastcall TForm2::ClientSocket1Connect(TObject *Sender,
      TCustomWinSocket *Socket)
{
        Memo1->Lines->Add("[*] Polaczono");
}

void __fastcall TForm2::ServerSocket1Accept(TObject *Sender,
      TCustomWinSocket *Socket)
{
       Memo1->Lines->Add("[*] Połączony z: " + Socket->RemoteAddress);
}
//---------------------------------------------------------------------------



void __fastcall TForm2::ClientSocket1Error(TObject *Sender,
      TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
  Memo1->Lines->Add("Problem z polaczeniem do adresu:" + adres);
  ErrorCode = 0;
}

void __fastcall TForm2::ServerSocket1ClientDisconnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
        Memo1->Lines->Add("[-] Klient rozlaczony");
}

void __fastcall TForm2::ClientSocket1Disconnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
        Memo1->Lines->Add("[-] Klient rozlaczony");
}

void __fastcall TForm2::FormCreate(TObject *Sender)
{
        ServerSocket1->Active = false;
        ClientSocket1->Active = false;
}
//---------------------------------------------------------------------------

void __fastcall TForm2::Exit1Click(TObject *Sender)
{
  ServerSocket1->Close();
  ClientSocket1->Close();
  Close();
}

 

A tutaj cały projekt:

https://bitbucket.org/Saklavi/k_k_builder/get/clean.zip

 

Z góry dziękuję za pomoc :)


Viewing all articles
Browse latest Browse all 21942