?? sgiplistensocket.cpp
字號:
// SgipListenSocket.cpp : implementation file
//
#include "stdafx.h"
#include "SgipServiceDemo.h"
#include "SgipListenSocket.h"
#include "SocketResource.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSgipListenSocket
CSgipListenSocket::CSgipListenSocket()
{
}
CSgipListenSocket::~CSgipListenSocket()
{
}
// Do not edit the following lines, which are needed by ClassWizard.
#if 0
BEGIN_MESSAGE_MAP(CSgipListenSocket, CAsyncSocket)
//{{AFX_MSG_MAP(CSgipListenSocket)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
#endif // 0
/////////////////////////////////////////////////////////////////////////////
// CSgipListenSocket member functions
int CSgipListenSocket::Listen(UINT uPort)
{
m_uiPort = uPort;
if (!CAsyncSocket::Create(uPort))
return GetLastError();
if (!CAsyncSocket::Listen())
return GetLastError();
return 0;
}
void CSgipListenSocket::OnAccept(int nErrorCode)
{
//CAsyncSocket::OnAccept(nErrorCode);
// TODO: Add your specialized code here and/or call the base class
if(0 != nErrorCode) return;
//get server connection that can use
int iSocketNo;
CSgipServerSocket * pServerSocket;
m_pManager->Check();
if(m_pManager->GetServerSocket(&iSocketNo,&pServerSocket) == 0)
{
if(!Accept(*pServerSocket))
{
TRACE("ListenOnAccept:Accept the serversocket fail!\n");
pServerSocket->m_bConnected = FALSE;
}
else
{
TRACE("ListenOnAccept:Accept the serversocket ok!\n");
pServerSocket->m_bConnected = TRUE;
pServerSocket->m_strLocalUserName = m_pManager->m_ini_def.strLocalUserName;
pServerSocket->m_strLocalPwd = m_pManager->m_ini_def.strLocalPwd;
}
}
else
{
TRACE("ListenOnAccept:No can use serversocket!Close, Create,Listen...\n");
//隨便給個socket,然后就把它關掉!!
CAsyncSocket *pTempSocket = new CAsyncSocket();
Accept(*pTempSocket);
delete pTempSocket;
}
return ;
}
void CSgipListenSocket::SetManager(CSocketResource *pManager)
{
m_pManager = pManager;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -