在mfc中如何设计基于tcp的同时支持多客户端的服务器程序?
我希望用同一个端口,因为如果客户机不确定我主机的端口会很麻烦。
本来的设计是来一个请求就多一个连接。然后接受数据,把数据放在一个队列里面,由一个线程来处理数据,并等数据完成后,把数据传回去。
下面是我自定义的两个继承于Csocket的类。,然后在我的主线程中我该如何使用?
class ServerSocket : public CSocket
public:
ServerSocket();
virtual ~ServerSocket();
public:
public:
virtual void OnReceive(int nErrorCode);
virtual void OnClose(int nErrorCode);
void SetPossessor(CRate_ServerDlg* pDlg); //这个是获得对话框指针
无关紧要的
void Finish_Comm();//释放指针用的
void SentData(CString strMsg);//发送数据的函数(写缓冲区)
NetData ReceiveData(); //接受数据的函数(读缓冲区)
void Init(); //初始化
protected:
CArchive *m_pArOut;
CArchive *m_pArIn;
CSocketFile *m_pFile;
CRate_ServerDlg *m_pDlg;//对话框指针
};
class ClistenSocket : public CSocket //这个类主要是负责生成监听变量的。
{
public:
public:
ClistenSocket();
virtual ~ClistenSocket();
public:
public:
virtual void OnAccept(int nErrorCode);
void SetPossessor(CRate_ServerDlg *pDlg); //和上面一个意思。
protected:
CRate_ServerDlg *m_pDlg;
};