?? serversocket.cpp
字號:
// ServerSocket.cpp : implementation file
//
#include "stdafx.h"
#include "videocapture.h"
#include "ServerSocket.h"
#include "VideoCaptureView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CServerSocket
CServerSocket::CServerSocket()
{
m_bConnected=FALSE;
}
CServerSocket::~CServerSocket()
{
}
// Do not edit the following lines, which are needed by ClassWizard.
#if 0
BEGIN_MESSAGE_MAP(CServerSocket, CAsyncSocket)
//{{AFX_MSG_MAP(CServerSocket)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
#endif // 0
/////////////////////////////////////////////////////////////////////////////
// CServerSocket member functions
void CServerSocket::OnAccept(int nErrorCode)
{
CVideoCaptureView *pView = CVideoCaptureView::GetView();
while(!pView)
{
pView = CVideoCaptureView::GetView();
}
SOCKADDR_IN client;
int iAddrSize=sizeof(client);
if(pView->m_skt==INVALID_SOCKET && !m_bConnected)
{
Accept(pView->m_skt,(SOCKADDR*)&client,&iAddrSize);
RemoteAdd=inet_ntoa(client.sin_addr);
}
// ShowMessage("遠程客戶["+RemoteAdd+"]連接成功");
// ::KillTimer(pView->GetSafeHwnd(),IDC_TIME_CAPTURE);
pView->SetRemoteMode("遠程客戶["+RemoteAdd+"]連接成功");
// ::SetTimer(pView->GetSafeHwnd(),IDC_TIME_CAPTURE,100,0);
m_bConnected=TRUE;
pView->m_dwManualTransRecordID=0;
///遠程傳輸線程
::WaitForSingleObject(pView->hThreadCopy,INFINITE); //等待舊的傳輸線程結束
// ::CloseHandle(pView->hThreadCopy);
DATASEND* ptp = new DATASEND;
ptp->pView = pView;
pView->ExitSendDataThread=FALSE;
pView->pThreadDataSend=AfxBeginThread(ThreadDataSend, ptp,THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED);
::DuplicateHandle(GetCurrentProcess(),pView->pThreadDataSend->m_hThread,GetCurrentProcess(),&pView->hThreadCopy,0,FALSE,DUPLICATE_SAME_ACCESS);
pView->pThreadDataSend->ResumeThread();
pView->pcsDlg->GetDlgItem(IDC_STATIC_FTP)->SetWindowText("傳輸狀態:啟動");
CAsyncSocket::OnAccept(nErrorCode);
}
void CServerSocket::OnClose(int nErrorCode)
{
CVideoCaptureView *pView = CVideoCaptureView::GetView();
ShowMessage("遠程客戶斷開連接");
pView->SetRemoteMode("遠程客戶斷開連接");
// m_bConnected=FALSE;
CAsyncSocket::OnClose(nErrorCode);
}
void CServerSocket::OnConnect(int nErrorCode)
{
if (nErrorCode)
{
}
else
{
//顯示連接成功
CVideoCaptureView *pView = CVideoCaptureView::GetView();
pView->SetRemoteMode("連接主程序成功");
pView->Listen();
}
CAsyncSocket::OnConnect(nErrorCode);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -