Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
114
Server/GashServer/NetString.h
Normal file
114
Server/GashServer/NetString.h
Normal file
@@ -0,0 +1,114 @@
|
||||
#pragma once
|
||||
|
||||
#include "IOBuffer.h"
|
||||
#include <list>
|
||||
#include <string>
|
||||
|
||||
// sock
|
||||
#include<winsock2.h> // win32 socket
|
||||
#pragma comment(lib,"ws2_32.lib")
|
||||
|
||||
#include<Mswsock.h> // extension socket library
|
||||
#pragma comment(lib,"mswsock.lib")
|
||||
|
||||
|
||||
#define WM_CONNECT WM_APP + 0x1001
|
||||
#define WM_RECV_MSG WM_APP + 0x1002
|
||||
#define WM_SOCK_CLOSE WM_APP + 0x1003
|
||||
|
||||
class CNetString
|
||||
{
|
||||
public:
|
||||
class IEventListener
|
||||
{
|
||||
public:
|
||||
virtual ~IEventListener() {}
|
||||
virtual void EventPacket(int iIndex, char* pPacket)=0;
|
||||
};
|
||||
|
||||
void SetEventListener(IEventListener* event)
|
||||
{
|
||||
m_event = event;
|
||||
}
|
||||
|
||||
IEventListener* m_event;
|
||||
|
||||
HWND m_hWnd; // <20>θ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڵ<EFBFBD>
|
||||
int m_iIndex;
|
||||
|
||||
SOCKET m_hSocket; // Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
|
||||
UINT m_nPort; // <20><>Ʈ
|
||||
CHAR m_strIPAddr[20]; // Server IP<49><50><EFBFBD><EFBFBD>
|
||||
|
||||
BOOL m_bConnect; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD>
|
||||
BOOL m_bClose;
|
||||
|
||||
CPacketIOBuffer m_RecvIO;
|
||||
char m_PacketBuffer[MAX_PACKETSIZE];
|
||||
|
||||
WSAEVENT m_hEvent; // <20><>Ʈ<EFBFBD><C6AE>ũ <20>̺<EFBFBD>Ʈ <20>ڵ鷯
|
||||
|
||||
HANDLE m_hEventThread; // Recv <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڵ<EFBFBD>
|
||||
|
||||
std::list<std::string> m_SendQue;
|
||||
std::list<std::string> m_RecvQue;
|
||||
|
||||
private:
|
||||
static DWORD WINAPI EventThreadProc(LPVOID lParam); // Main Thread
|
||||
|
||||
void OnSendPacketData();
|
||||
void OnReadPacketData();
|
||||
|
||||
//////////////////
|
||||
// MessageHandling
|
||||
BOOL OnConnect(); // On Connect <20><>ȣ<EFBFBD><C8A3>
|
||||
BOOL OnClose(); // On Close <20><>ȣ<EFBFBD><C8A3>
|
||||
|
||||
/////////////////
|
||||
// <20><><EFBFBD><EFBFBD> ó<><C3B3> <20>Լ<EFBFBD>
|
||||
BOOL Connect(); // C-S <20><><EFBFBD><EFBFBD>
|
||||
BOOL WinSockInit();
|
||||
|
||||
protected:
|
||||
virtual void OnSocketEvent(DWORD dID, DWORD dEvent) {};
|
||||
|
||||
BOOL NetworkEventHanlder(LONG lEvent); // <20><EFBFBD><DEBC><EFBFBD> <20>б<EFBFBD> <20>Լ<EFBFBD>
|
||||
void ProcessPacket(char* Packet, int PacketLen);
|
||||
|
||||
int GetQueCnt()
|
||||
{
|
||||
return (int)m_RecvQue.size();
|
||||
}
|
||||
|
||||
int GetPacket(char* pPacket)
|
||||
{
|
||||
strcpy(pPacket, m_RecvQue.begin()->c_str());
|
||||
return (int)strlen(pPacket);
|
||||
}
|
||||
|
||||
void PopPacket()
|
||||
{
|
||||
m_RecvQue.pop_front();
|
||||
}
|
||||
|
||||
public:
|
||||
void GetLocalIP(char* LocalIP);
|
||||
|
||||
BOOL IsConnect() { return m_bConnect; }
|
||||
|
||||
virtual void SendPost(char* Packet);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>.
|
||||
BOOL Init(HWND hWnd, int iIndex, char* szIP, int nPort); // <20>ʱ<EFBFBD>ȭ
|
||||
virtual void Disconnect();
|
||||
|
||||
virtual void Update();
|
||||
|
||||
void Stop(); // Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
|
||||
void CloseAll();
|
||||
void SetParent(HWND hWnd);
|
||||
|
||||
public:
|
||||
CNetString(void);
|
||||
~CNetString(void);
|
||||
};
|
||||
Reference in New Issue
Block a user