TTcpServer (C++)
Language:
Description
This example demonstrates the use of TTcpServer to receive a buffer (in this case, a stream) and to process it. The example can be used with the example for TTcpClientSendStream_(C++). To build this example, create a VCL Forms Application. Add three buttons (Connect, Disconnect, Clear), a memo box, and a TTcpServer from the Tool Palette.
Code
Define the default port for the communication.
#define DEFAULT_PORT 2501//The default port for the communication
Add the code below to the OnCreate event handler of the form.
__fastcall TForm3::TForm3(TComponent* Owner) : TForm(Owner) { Memo1->Lines->Clear(); //Server initialization TcpServer1 = new TTcpServer(this); TcpServer1->OnAccept = TcpServer1Accept; TcpServer1->OnCreateHandle = TcpServer1CreateHandle; TcpServer1->OnDestroyHandle = TcpServer1DestroyHandle; }
Add the code below to the OnAccept event handler of the TTcpServer.
void __fastcall TForm3::TcpServer1Accept(TObject *Sender, TCustomIpClient *ClientSocket) { byte a[10]; ClientSocket->ReceiveBuf(a,10,0); TDateTime now = TDateTime::CurrentDateTime(); Memo1->Lines->Add(DateTimeToStr(now) + " Data added with " + IntToStr(a[9])); for (int i=0; i < 9; i++) { Memo1->Lines->Add(IntToStr(a[i] + a[9])); } Memo1->Lines->Add("--------------------"); }
Add the code below to the OnClick event of the 'Connect' button.
void __fastcall TForm3::Button1Click(TObject *Sender) { TcpServer1->LocalPort = DEFAULT_PORT; TcpServer1->Active = true; }
Add the code below to the OnClick event of the 'Disconnect' button.
void __fastcall TForm3::Button2Click(TObject *Sender) { TcpServer1->Active = false; }
Add the code below to the OnClick event of the 'Clear' button.
void __fastcall TForm3::Button3Click(TObject *Sender) { Memo1->Lines->Clear(); }
Add the code below to the OnCreateHandle event handler of the TTcpServer.
void __fastcall TForm3::TcpServer1CreateHandle(TObject *Sender) { TDateTime now = TDateTime::CurrentDateTime(); Memo1->Lines->Add(DateTimeToStr(now) + " Server started "); }
Add the code below to the OnDestroyHandle event handler of the TTcpServer.
void __fastcall TForm3::TcpServer1DestroyHandle(TObject *Sender) { TDateTime now = TDateTime::CurrentDateTime(); if(this->Memo1) { Memo1->Lines->Add(DateTimeToStr(now) + " Server stopped "); } }
Uses
- Web.Win.Sockets.TTcpServer ( fr | de | ja )
- Web.Win.Sockets.TBaseSocket.ReceiveBuf ( fr | de | ja )
- Web.Win.Sockets.TCustomTcpServer.OnAccept ( fr | de | ja )
- Web.Win.Sockets.TBaseSocket.OnCreateHandle ( fr | de | ja )
- Web.Win.Sockets.TBaseSocket.OnDestroyHandle ( fr | de | ja )
- Web.Win.Sockets.TIpSocket.LocalPort ( fr | de | ja )