listensocket.cpp

来自「《医学图象的远程传输系统》」· C++ 代码 · 共 59 行

CPP
59
字号
// ListenSocket.cpp : implementation file
//

#include "stdafx.h"
#include "TransServer.h"
#include "ListenSocket.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#include "TransServerDlg.h"
#include "ChannelDlg.h"

/////////////////////////////////////////////////////////////////////////////
// CListenSocket

CListenSocket::CListenSocket(CTransServerDlg* pDlg)
{
    m_pDlg=pDlg;
}

CListenSocket::~CListenSocket()
{
}


// Do not edit the following lines, which are needed by ClassWizard.
#if 0
BEGIN_MESSAGE_MAP(CListenSocket, CAsyncSocket)
	//{{AFX_MSG_MAP(CListenSocket)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()
#endif	// 0

/////////////////////////////////////////////////////////////////////////////
// CListenSocket member functions

void CListenSocket::OnAccept(int nErrorCode) 
{
    if (nErrorCode==0){
		CONNECTION* conn=new CONNECTION;
		conn->pSocket=new CServerStreamSocket(m_pDlg);
		Accept(*(conn->pSocket));
		CChannelDlg dlg;
		dlg.DoModal();
		conn->Channel=dlg.m_Channel;
		conn->pSocket->AsyncSelect(FD_READ);
		conn->pSendThread=AfxBeginThread(SendThread,conn,THREAD_PRIORITY_NORMAL);	
		m_pDlg->m_ConnectionList[conn->Channel].AddTail(conn);
		CString sResult;
		sResult.Format("Socket [%d] connected to channel %d .",conn->pSocket,conn->Channel);
		m_pDlg->AddLog(sResult);
    }
	CAsyncSocket::OnAccept(nErrorCode);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?