//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "uFrmMain.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmMain *frmMain;
TClientRecvThread *FClientRecvThread;
//---------------------------------------------------------------------------
__fastcall TfrmMain::TfrmMain(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::FormCreate(TObject *Sender)
{
ServerSocket->Active = False;
ServerSocket->Port = 2013;
ServerSocket->ServerType = stThreadBlocking;
ServerSocket->Active = true;
if (ServerSocket->Active)
{
StatusBar1->Panels->Items[0]->Text = "Listening...";
}
ClientSocket->Active = False;
ClientSocket->Address = "127.0.0.1";
ClientSocket->Host = "127.0.0.1";
ClientSocket->Port = 2013;
ClientSocket->ClientType = ctBlocking;
// ClientSocket->Socket->LocalAddress = "127.0.0.1";
// ClientSocket->Socket->LocalHost = "127.0.0.1";
// ClientSocket->Socket->LocalPort = 2013;
}
//---------------------------------------------------------------------------
//__fastcall TClientRecvThread::TClientRecvThread(bool CreateSuspended)
//{
//
//}
//
//__fastcall TClientRecvThread::~TClientRecvThread(void)
//{
//
//}
//void __fastcall TClientRecvThread::Execute(void)
//{
// String sRecv = "";
// while (frmMain->ClientSocket->Socket->Connected)
// {
// sRecv = frmMain->ClientSocket->Socket->ReceiveText();
// if (sRecv.Trim() != "")
// {
// frmMain->mmoClient->Lines->Add(sRecv);
// }
// }
//}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnConnectClick(TObject *Sender)
{
int iSocket = 0;
if (frmMain->ClientSocket->Active)
{
frmMain->ClientSocket->Active = False;
}
frmMain->ClientSocket->Active = True;
while (!frmMain->ClientSocket->Socket->Connected)
{
Application->ProcessMessages();
if (FStop)
{
frmMain->mmoLog->Lines->Add("Stop at btnConnectClick");
break;
}
}
FClientRecvThread = new TClientRecvThread(true, frmMain->ServerSocket, frmMain->ClientSocket);
FClientRecvThread->FreeOnTerminate = true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::ServerSocketAccept(TObject *Sender, TCustomWinSocket *Socket)
{
mmoLog->Lines->Add("----- ServerSocketAccept -----");
String sData = "";
while (Socket->Connected)
{
Application->ProcessMessages();
frmMain->mmoLog->Lines->Add("Socket->Connected = true");
if (FStop)
{
frmMain->mmoLog->Lines->Add("Stop at ServerSocketAccept");
break;
}
sData = Socket->ReceiveText();
frmMain->mmoLog->Lines->Add("Socket->ReceiveText = " + sData);
if (sData.Trim() != "")
{
frmMain->mmoServer->Lines->Add(sData);
sData = FormatDateTime("yyyy-mm-dd hh:nn:ss", Now());
Socket->SendText(sData);
}
else
{
break;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnSendClick(TObject *Sender)
{
FClientRecvThread->Resume();
for (int i = 0; i < 10; i++)
{
Application->ProcessMessages();
frmMain->ClientSocket->Socket->SendText(IntToHex(i, 8));
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::ClientSocketConnect(TObject *Sender, TCustomWinSocket *Socket)
{
mmoLog->Lines->Add("----- ClientSocketConnect -----");
mmoLog->Lines->Add("RemoteAddress: " + Socket->RemoteAddress);
mmoLog->Lines->Add("RemoteHost: " + Socket->RemoteHost);
mmoLog->Lines->Add("RemotePort: " + IntToStr(Socket->RemotePort));
mmoLog->Lines->Add("Connected: " + IntToStr(Socket->Connected));
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::ClientSocketConnecting(TObject *Sender, TCustomWinSocket *Socket)
{
mmoLog->Lines->Add("----- ClientSocketConnecting -----");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::ClientSocketDisconnect(TObject *Sender, TCustomWinSocket *Socket)
{
mmoLog->Lines->Add("----- ClientSocketDisconnect -----");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::ClientSocketError(TObject *Sender, TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
mmoLog->Lines->Add("----- ClientSocketError -----");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::ClientSocketLookup(TObject *Sender, TCustomWinSocket *Socket)
{
mmoLog->Lines->Add("----- ClientSocketLookup -----");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::ClientSocketRead(TObject *Sender, TCustomWinSocket *Socket)
{
mmoLog->Lines->Add("----- ClientSocketRead -----");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::ClientSocketWrite(TObject *Sender, TCustomWinSocket *Socket)
{
mmoLog->Lines->Add("----- ClientSocketWrite -----");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::ServerSocketClientConnect(TObject *Sender, TCustomWinSocket *Socket)
{
mmoLog->Lines->Add("----- ServerSocketClientConnect -----");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::ServerSocketClientDisconnect(TObject *Sender, TCustomWinSocket *Socket)
{
mmoLog->Lines->Add("----- ServerSocketClientDisconnect -----");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::ServerSocketClientError(TObject *Sender, TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
mmoLog->Lines->Add("----- ServerSocketClientError -----");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::ServerSocketClientRead(TObject *Sender, TCustomWinSocket *Socket)
{
mmoLog->Lines->Add("----- ServerSocketClientRead -----");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::ServerSocketClientWrite(TObject *Sender, TCustomWinSocket *Socket)
{
mmoLog->Lines->Add("----- ServerSocketClientWrite -----");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::ServerSocketGetSocket(TObject *Sender, int Socket, TServerClientWinSocket *&ClientSocket)
{
mmoLog->Lines->Add("----- ServerSocketGetSocket -----");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::ServerSocketGetThread(TObject *Sender, TServerClientWinSocket *ClientSocket, TServerClientThread *&SocketThread)
{
mmoLog->Lines->Add("----- ServerSocketGetThread -----");
// String sData = "";
// while (ClientSocket->Connected)
// {
// sData = ClientSocket->ReceiveText();
// frmMain->mmoLog->Lines->Add("ClientSocket->ReceiveText = " + sData);
//
// if (sData.Trim() != "")
// {
// frmMain->mmoServer->Lines->Add(sData);
// sData = FormatDateTime("yyyy-mm-dd hh:nn:ss", Now());
// ClientSocket->SendText(sData);
// }
// else
// {
// break;
// }
// }
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::ServerSocketListen(TObject *Sender, TCustomWinSocket *Socket)
{
mmoLog->Lines->Add("----- ServerSocketListen -----");
}
//--