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 :)