⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chat.cpp

📁 网络编程的一些实例
💻 CPP
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include <stdlib.h>

#include "chat.h"
#include "setngfr2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TAWTalkForm *AWTalkForm;
//---------------------------------------------------------------------------
__fastcall TAWTalkForm::TAWTalkForm(TComponent* Owner)
	: TForm(Owner)
{
  ClientConnected = false;
  OutSocket = NULL;
  Application->OnIdle = ValidateControls;
  NickName = "Test1";
}
//---------------------------------------------------------------------------
void __fastcall TAWTalkForm::ValidateControls(TObject *Sender, bool &Done){
  MenuConnect->Enabled = !ClientConnected;
  MenuDisconnect->Enabled = ClientConnected;
  FileSettings->Enabled = !ClientConnected;
  Memo1->ReadOnly = !OutSocket;
}
//---------------------------------------------------------------------------
void __fastcall TAWTalkForm::MenuConnectClick(TObject *Sender)
{
  ClientSocket1->Host = "localhost";
  EnableClient();
}
//---------------------------------------------------------------------------
void __fastcall TAWTalkForm::MenuDisconnectClick(TObject *Sender)
{
  if (ClientConnected){
	DisableClient();
  }
}
//---------------------------------------------------------------------------
void __fastcall TAWTalkForm::FileSettingsClick(TObject *Sender)
{
  AWTalkSettingsForm = new TAWTalkSettingsForm(this);
  AWTalkSettingsForm->HostEdit->Text = ClientSocket1->Host;
  AWTalkSettingsForm->NickNameEdit->Text = NickName;
  if (AWTalkSettingsForm->ShowModal() == mrOk){
	ClientSocket1->Host = AWTalkSettingsForm->HostEdit->Text;
	NickName = AWTalkSettingsForm->NickNameEdit->Text;
  }
  delete AWTalkSettingsForm;
}
//---------------------------------------------------------------------------
void __fastcall TAWTalkForm::Memo1KeyDown(TObject *Sender, WORD &Key,
	  TShiftState Shift)
{
  if (OutSocket){
	if (Key == VK_RETURN){
	  OutSocket->SendText(Memo1->Text);
	  Memo1->Lines->Clear();
	  Key = 0;
	}
  }
}
//---------------------------------------------------------------------------
void __fastcall TAWTalkForm::ClientSocket1Connect(TObject *Sender,
	  TCustomWinSocket *Socket)
{
  StatusBar1->SimpleText = "Connected to server...";
  OutSocket = Socket;
  AnsiString sendstring = NickName + '\n';
  Socket->SendText(sendstring);
}
//---------------------------------------------------------------------------
void __fastcall TAWTalkForm::ClientSocket1Disconnect(TObject *Sender,
	  TCustomWinSocket *Socket)
{
  DisableClient();
}
//---------------------------------------------------------------------------
void __fastcall TAWTalkForm::ClientSocket1Connecting(TObject *Sender,
	  TCustomWinSocket *Socket)
{
  StatusBar1->SimpleText = "Connecting to localhost...";
}
//---------------------------------------------------------------------------
void __fastcall TAWTalkForm::ClientSocket1Lookup(TObject *Sender,
	  TCustomWinSocket *Socket)
{
  StatusBar1->SimpleText = "Looking up host localhost...";
}
//---------------------------------------------------------------------------
void __fastcall TAWTalkForm::ClientSocket1Error(TObject *Sender,
	  TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
  StatusBar1->SimpleText = "Error Code " + IntToStr(ErrorCode);
  ShowMessage("Socket Error " + IntToStr(ErrorCode));
  ErrorCode = 0;
  DisableClient();
}
//---------------------------------------------------------------------------
void __fastcall TAWTalkForm::ClientSocket1Read(TObject *Sender,
	  TCustomWinSocket *Socket)
{
  StatusBar1->SimpleText = "Reading Data from server...";
  Memo2->Lines->Add(Socket->ReceiveText());
}
//---------------------------------------------------------------------------
void TAWTalkForm::EnableClient(){
  ClientConnected = true;
  StatusBar1->SimpleText = "Connecting to localhost...";
  ClientSocket1->Open();
}
//---------------------------------------------------------------------------
void TAWTalkForm::DisableClient(){
  DefaultSBText();
  OutSocket = NULL;
  ClientConnected = false;
  ClientSocket1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TAWTalkForm::Exit1Click(TObject *Sender)
{
  Close();
}
//---------------------------------------------------------------------------
void __fastcall TAWTalkForm::ServerSocket1ClientRead(TObject *Sender,
	  TCustomWinSocket *Socket)
{
  StatusBar1->SimpleText = "Reading Data from client...";
  Memo2->Lines->Add(Socket->ReceiveText());
}
//---------------------------------------------------------------------------
void __fastcall TAWTalkForm::ServerSocket1ClientConnect(TObject *Sender,
	  TCustomWinSocket *Socket)
{
  StatusBar1->SimpleText = "Client Connect...";
  OutSocket = Socket;
}
//---------------------------------------------------------------------------
void TAWTalkForm::DefaultSBText(){
  StatusBar1->SimpleText = "Please Select Mode";
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -