📄 chatserveru.h
字号:
//---------------------------------------------------------------------------
#ifndef charsvrH
#define charsvrH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ComCtrls.hpp>
#include <Menus.hpp>
#include <ScktComp.hpp>
#include <ExtCtrls.hpp>
//---------------------------------------------------------------------------
enum ServerStatus {SS_NOT_RUNNING, SS_RUNNING};
enum LogEntryType {LET_WARNING, LET_ERROR, LET_SIGNON, LET_SIGNOFF};
enum ServerNotification {SN_LOGON, SN_LOGOFF, SN_PUBLIC_MSG,SN_PRIVATE_MSG};
#define CHAT_SERVER_PORT 5790
//---------------------------------------------------------------------------
class TChatServerForm : public TForm
{
__published: // IDE-managed Components
TServerSocket *MainServerSocket;
TStatusBar *ChatServerStatusBar;
TMainMenu *MainMenu1;
TMenuItem *File;
TMenuItem *Exit;
TMenuItem *StartStopServer;
TListView *ConnectionsListView;
TSplitter *Splitter1;
TListView *LogEntryListView;
TMenuItem *ClearLog;
void __fastcall StartStopServerClick(TObject *Sender);
void __fastcall MainServerSocketClientConnect(TObject *Sender,
TCustomWinSocket *Socket);
void __fastcall MainServerSocketClientDisconnect(TObject *Sender,
TCustomWinSocket *Socket);
void __fastcall MainServerSocketClientError(TObject *Sender,
TCustomWinSocket *Socket, TErrorEvent ErrorEvent,
int &ErrorCode);
void __fastcall MainServerSocketClientRead(TObject *Sender,
TCustomWinSocket *Socket);
void __fastcall ExitClick(TObject *Sender);
void __fastcall ClearLogClick(TObject *Sender);
private: // User declarations
ServerStatus CurrentServerStatus;
void SetServerStatus(ServerStatus _serverstatus);
void AddConnectionToListView(TCustomWinSocket *ClientSocket);
void RemoveConnectionFromListView(TCustomWinSocket *Socket);
void UpdateStatusBar(bool DecUse = false);
void AddLogEntry(LogEntryType let, AnsiString EntryText);
void SetUserBySocket(TCustomWinSocket *Socket, const AnsiString &UserNickName);
void GetUserBySocket(TCustomWinSocket *Socket, AnsiString &UserNickName);
int GetSocketNoByUser(AnsiString User);
TListItem * ListItemBySocket(TCustomWinSocket *Socket);
void BroadcastMessage(AnsiString Message, TCustomWinSocket *ExcludeSocket);
void MulticastMessage(AnsiString Message, AnsiString UserList); //*!
void SendNotification(ServerNotification sn, AnsiString additional, TCustomWinSocket *ExcludeSocket);
public: // User declarations
__fastcall TChatServerForm(TComponent* Owner);
//save the sockets to send private msg
AnsiString MuticastUserList;
};
//---------------------------------------------------------------------------
extern PACKAGE TChatServerForm *ChatServerForm;
//---------------------------------------------------------------------------
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -