📄 0,1410,26276,00.html
字号:
<br>#include <Classes.hpp>
<br>#include <Controls.hpp>
<br>#include <StdCtrls.hpp>
<br>#include <Forms.hpp>
<br>#include <ScktComp.hpp>
<br>//---------------------------------------------------------------------------
<br>class TForm1 : public TForm
<br>{
<br> __published: // IDE-managed Components
<br> TServerSocket *ServerSocket1;
<br> TMemo *Memo1;
<br> void __fastcall ServerSocket1GetThread(TObject
*Sender,
<br> TServerClientWinSocket
*ClientSocket, TServerClientThread *&SocketThread);
<br> private: // User declarations
<br> public: // User
declarations
<br> __fastcall TForm1(TComponent* Owner);
<br>};
<br>//---------------------------------------------------------------------------
<br>extern PACKAGE TForm1 *Form1;
<br>//---------------------------------------------------------------------------
<p>//---------------------------------------------------------------------------
<br>// Threads for server connections are descendants of TServerClientThread.
<br>// Thus, you may not use the New Thread object dialog.
<br>// Instead, declare your thread manually as follows:
<br>class PACKAGE TMyServerThread : public Scktcomp::TServerClientThread
<br>{
<br> public:
<br> // if true, FreeOnTerminate is set to
false before the thread terminates,
<br> // and the thread is left in the thread
cache. When KeepInCache is false,
<br> // the thread is freed when execution
terminates.
<br> __fastcall TMyServerThread(bool CreateSuspended,
TServerClientWinSocket* ASocket)
<br> : Scktcomp::TServerClientThread(CreateSuspended,
ASocket)
<br> { CreateSuspended
= false; KeepInCache=true; FreeOnTerminate=false; };
<p> // To implement this thread, you override
the ClientExecute method instead of the Execute method.
<br> void __fastcall ClientExecute(void);
<br>};
<br>//---------------------------------------------------------------------------
<br>#endif
<br>//---------------------------------------------------------------------------
<br>// *******************************************************
<br>//---------------------------------------------------------------------------
<br>
<br>
<p>//---------------------------------------------------------------------------
<br>// *****************
ClientMain.cpp *****************
<br>//---------------------------------------------------------------------------
<br>// Requires: 2 TButtons, TMemo, TClientSocket
<br>#include <vcl.h>
<br>#pragma hdrstop
<br>#include "ClientMain.h"
<br>//---------------------------------------------------------------------------
<br>#pragma package(smart_init)
<br>#pragma resource "*.dfm"
<br>TForm2 *Form2;
<br>//---------------------------------------------------------------------------
<br>//---------------------------------------------------------------------------
<br>__fastcall TForm2::TForm2(TComponent* Owner)
<br> : TForm(Owner)
<br>{
<br>}
<br>//---------------------------------------------------------------------------
<p>//---------------------------------------------------------------------------
<br>void __fastcall TForm2::Button1Click(TObject *Sender)
<br>{
<br> if (ClientSocket1->Active)
<br> ClientSocket1->Active = false;
<br> if (InputQuery("Computer to connect to", "Address Name:",
Server))
<br> {
<br> if (Server.Length() > 0)
<br> {
<br> ClientSocket1->Host
= Server;
<br> ClientSocket1->Active
= true;
<br> }
<br> }
<br>}
<br>//---------------------------------------------------------------------------
<p>//---------------------------------------------------------------------------
<br>void __fastcall TForm2::Button2Click(TObject *Sender)
<br>{
<br> ClientSocket1->Active = false;
<br>}
<br>//---------------------------------------------------------------------------
<p>//---------------------------------------------------------------------------
<br>void __fastcall TForm2::ClientSocket1Read(TObject *Sender, TCustomWinSocket
*Socket)
<br>{
<br> if (ClientSocket1->Active == true)
<br> if (Socket->Connected == true)
<br> Memo1->Lines->Add(
AnsiString("(Server) ") +Socket->ReceiveText() );
<br>}
<br>//---------------------------------------------------------------------------
<p>//---------------------------------------------------------------------------
<br>void __fastcall TForm2::ClientSocket1Write(TObject *Sender, TCustomWinSocket
*Socket)
<br>{
<br> if (ClientSocket1->Active == true)
<br> if (Socket->Connected == true)
<br> Socket->SendText("This
text is passed to and fro");
<br>}
<br>//---------------------------------------------------------------------------
<br>// *******************************************************
<br>//---------------------------------------------------------------------------
<br>
<br>
<p>//---------------------------------------------------------------------------
<br>// ******************
ClientMain.h ******************
<br>//---------------------------------------------------------------------------
<br>//---------------------------------------------------------------------------
<br>#ifndef ClientMainH
<br>#define ClientMainH
<br>//---------------------------------------------------------------------------
<br>#include <Classes.hpp>
<br>#include <Controls.hpp>
<br>#include <StdCtrls.hpp>
<br>#include <Forms.hpp>
<br>#include <ScktComp.hpp>
<br>//---------------------------------------------------------------------------
<br>class TForm2 : public TForm
<br>{
<br>__published: // IDE-managed Components
<br> TClientSocket *ClientSocket1;
<br> TButton *Button1;
<br> TButton *Button2;
<br> TMemo *Memo1;
<br> void __fastcall Button1Click(TObject *Sender);
<br> void __fastcall Button2Click(TObject *Sender);
<br> void __fastcall ClientSocket1Read(TObject *Sender,
<br> TCustomWinSocket
*Socket);
<br> void __fastcall ClientSocket1Write(TObject *Sender,
<br> TCustomWinSocket
*Socket);
<br>private: // User declarations
<br> AnsiString Server;
<br>public: // User declarations
<br> __fastcall TForm2(TComponent* Owner);
<br>};
<br>//---------------------------------------------------------------------------
<br>extern PACKAGE TForm2 *Form2;
<br>//---------------------------------------------------------------------------
<br>#endif
<br>//---------------------------------------------------------------------------
<br>// *******************************************************
<br>//---------------------------------------------------------------------------
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -