⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clientsock.cpp

📁 一个简单的服务器客户端通信程序。适用于网络编程入门
💻 CPP
字号:
// ClientSock.cpp : implementation file
//

#include "stdafx.h"
#include "Talk.h"
#include "ClientSock.h"
#include "TalkDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CClientSock

CClientSock::CClientSock()
{
	m_nLength = 0;
	memset (m_szBuffer, 0, sizeof(m_szBuffer));
	m_bConnected = FALSE;
}

CClientSock::~CClientSock()
{
	if (m_hSocket != INVALID_SOCKET)
		Close();
}

void CClientSock::OnConnect(int nErrorCode)
{
	if (nErrorCode == 0)
	{
		m_bConnected = TRUE;
		CWinApp * pApp = (CWinApp *) AfxGetApp();
		CTalkDlg * pDlg = (CTalkDlg *) pApp->m_pMainWnd;
		memcpy (m_szBuffer, "Connected to", 13);
		strncat (m_szBuffer, pDlg->m_szServerAdr, sizeof(pDlg->m_szServerAdr));
		pDlg->m_MSG.InsertString(0, m_szBuffer);

		AsyncSelect (FD_READ);
	}
	CAsyncSocket::OnConnect(nErrorCode);
}

void CClientSock::OnReceive(int nErrorCode)
{
	m_nLength = Receive (m_szBuffer, sizeof(m_szBuffer), 0);

	CWinApp * pApp = (CWinApp *) AfxGetApp();
	CTalkDlg * pDlg = (CTalkDlg *) pApp->m_pMainWnd;
	pDlg->m_MSG.InsertString(-1, m_szBuffer);
	memset (m_szBuffer, '\0', sizeof(m_szBuffer));
	CAsyncSocket::OnReceive(nErrorCode);
}

void CClientSock::OnSend ( int nErrorCode)
{
	CWinApp * pApp = (CWinApp *) AfxGetApp();
	CTalkDlg * pDlg = (CTalkDlg *) pApp->m_pMainWnd;

	m_nLength = pDlg->m_Message.GetWindowText( m_szBuffer, 256);
	pDlg->m_Message.SetWindowText("");
	m_nLength = sizeof(m_szBuffer);
	Send(m_szBuffer, m_nLength, 0);
	m_nLength = 0;
	memset(m_szBuffer, 0, sizeof(m_szBuffer));

	AsyncSelect(FD_READ);
	CAsyncSocket::OnSend(nErrorCode);
}


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

/////////////////////////////////////////////////////////////////////////////
// CClientSock member functions

⌨️ 快捷键说明

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