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

📄 regwizard.cpp

📁 基于TCP的局域网多用户通信、文件传送程序详解
💻 CPP
字号:
// RegWizard.cpp : implementation file
//

#include "stdafx.h"
#include "wbQQClient.h"
#include "RegWizard.h"

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

/////////////////////////////////////////////////////////////////////////////
// CRegWizard

IMPLEMENT_DYNAMIC(CRegWizard, CPropertySheet)

CRegWizard::CRegWizard(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
	:CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
{
	
}

CRegWizard::CRegWizard(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
	:CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{
}

CRegWizard::~CRegWizard()
{
}


BEGIN_MESSAGE_MAP(CRegWizard, CPropertySheet)
	//{{AFX_MSG_MAP(CRegWizard)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CRegWizard message handlers



CRegWizard::CRegWizard()
{
	SetWizardMode();

	AddPage(&BasicDlg);
	AddPage(&MiscDlg);
	AddPage(&NetSetDlg);
}

bool CRegWizard::Register()
{
	InitNet();

	CString sex;
	if (BasicDlg.m_sex.GetCurSel() == 0)
	{
		sex = "男";
	}
	else
	{
		if (BasicDlg.m_sex.GetCurSel() == 1)
		{
			sex = "女";
		}
		else
		{
			sex = "阴阳";
		}
	}
	res = (BasicDlg.m_pic.GetCurSel() + 138);		//138是图标IDI_ICON1的值

	char sendText[400];
	char recvText[100];
	sprintf(sendText, "Reg:%s,%s,%s,%s,%s,%s,%s,%d,%s",
		BasicDlg.m_strUserName, BasicDlg.m_nAge, sex, BasicDlg.m_strPassWd,
		MiscDlg.m_strTruName, MiscDlg.m_strCity, MiscDlg.m_strEmail, res, MiscDlg.m_strTel);
	numsnt = send(destSocket, sendText, strlen(sendText) + 1, 0);
	if (numsnt != (int)strlen(sendText) + 1)
	{
		MessageBox("ERROR: Connection terminated!", "闻博QQ", MB_OK);
		status = closesocket(destSocket);
		if (status == SOCKET_ERROR)
		{
			MessageBox("ERROR: Closesocket unsuccessful!", "闻博QQ", MB_OK);
		}
		status = WSACleanup();
		if (status == SOCKET_ERROR)
		{
			MessageBox("ERROR: WSACleanup unsuccessful!", "闻博QQ", MB_OK);
		}
		return false;
	}
	numrcv = recv(destSocket, recvText, 100, 0);
	if ((numrcv == 0) || (numrcv == SOCKET_ERROR))
	{
		MessageBox("ERROR: Connection terminated!", "闻博QQ", MB_OK);
		status = closesocket(destSocket);
		if (status == SOCKET_ERROR)
		{
			MessageBox("ERROR: Closesocket unsuccessful!", "闻博QQ", MB_OK);
		}
		status = WSACleanup();
		if (status == SOCKET_ERROR)
		{
			MessageBox("ERROR: WSACleanup unsuccessful!", "闻博QQ", MB_OK);
		}
		return false;
	}
	recvText[numrcv] = '\0';
	if (strcmp(recvText, "success!") == 0)
	{
		return true;
	}
	if (strcmp(recvText, "exist!") == 0)
	{
		MessageBox("你申请的用户名已经存在!", "闻博QQ", MB_OK);
	}
	closesocket(destSocket);
	return false;
}

bool CRegWizard::InitNet()
{
	status = WSAStartup(MAKEWORD(1, 1), &Data);
	if (status != 0)
	{
		MessageBox("ERROR:WSAStartup unsccessful!", "闻博QQ", MB_OK);
	}
	destAddr = inet_addr(NetSetDlg.m_IPAddr);
	memcpy(&destSockAddr.sin_addr, &destAddr, sizeof(destAddr));
	destSockAddr.sin_port = htons(NetSetDlg.m_nPort);
	destSockAddr.sin_family = AF_INET;
	destSocket = socket(AF_INET, SOCK_STREAM, 0);
	if (destSocket == INVALID_SOCKET)
	{
		MessageBox("ERROR:socket unsccessful!", "闻博QQ", MB_OK);
		status = WSACleanup();
		if (status == SOCKET_ERROR)
		{
			MessageBox("ERROR:WSACleanup unsccessful!", "闻博QQ", MB_OK);
		}
		return false;
	}

	status = connect(destSocket, (LPSOCKADDR)&destSockAddr, sizeof(destSockAddr));
	if (status == SOCKET_ERROR)
	{
		MessageBox("ERROR:connect unsccessful!", "闻博QQ", MB_OK);
		status = closesocket(destSocket);
		if (status == SOCKET_ERROR)
		{
			MessageBox("ERROR:closesocket unsccessful!", "闻博QQ", MB_OK);
		}
		status = WSACleanup();
		if (status == SOCKET_ERROR)
		{
			MessageBox("ERROR:WSACleanup unsccessful!", "闻博QQ", MB_OK);
		}
		return false;
	}

	return true;
}

⌨️ 快捷键说明

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