18,356
社区成员
发帖
与我相关
我的任务
分享
==========================================================
程序启动时执行:
if (FALSE==AfxSocketInit())
{
AfxMessageBox("AfxSocketInit Failed");
}
==========================================================
class CDlgServerDlg中定义一个成员
CServerSocket Server;
类的定义:
CServerSocket::CServerSocket(void)
{
}
CServerSocket::~CServerSocket(void)
{
}
void CServerSocket::OnReceive(int nErrorCode)
{
AfxMessageBox("OnReceive");
CString strTmp("");
strTmp.GetBuffer(1000);
m_WorkSocket.Receive((void*)(strTmp.GetBuffer(0)),10);
m_RcvQueue.push(strTmp);
AfxMessageBox(strTmp);
CSocket::OnReceive(nErrorCode);
}
void CServerSocket::OnAccept(int nErrorCode)
{
if (FALSE==Accept(m_WorkSocket))
{
AfxMessageBox("Accept Failed");
}
else
{
AfxMessageBox("Accept Successed");
}
CSocket::OnAccept(nErrorCode);
}
=====================================================================
void CDlgServerDlg::OnBnClickedOk()
{
if (FALSE==Server.Create(5000,SOCK_STREAM))
{
AfxMessageBox("Create Failed");
}
if (FALSE==Server.Listen(5))
{
AfxMessageBox("Listen Failed");
}
}
=====================================================================
class CServerSocket : public CSocket
{
public:
CServerSocket(void);
public:
virtual ~CServerSocket(void);
public:
CSocket m_WorkSocket;
str_queue m_RcvQueue;
public:
virtual void OnReceive(int nErrorCode);
public:
virtual void OnAccept(int nErrorCode);
};
if (FALSE==AfxSocketInit())
{
AfxMessageBox("AfxSocketInit Failed");
}