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

📄 serverdlg.cpp

📁 包括了基于网络芯片8019的单片机源程序和pc端的网络程序(VC++6.0)
💻 CPP
字号:
// ServerDlg.cpp : implementation file
//

#include "stdafx.h"
#include "testnet.h"
#include "ServerDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CServerDlg dialog


CServerDlg::CServerDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CServerDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CServerDlg)
	m_nServerPort = 0;
	m_nServerText = _T("");
	//}}AFX_DATA_INIT
}


void CServerDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CServerDlg)
	DDX_Text(pDX, IDC_SERVERPORT, m_nServerPort);
	DDX_Text(pDX, IDC_EDIT1, m_nServerText);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CServerDlg, CDialog)
	//{{AFX_MSG_MAP(CServerDlg)
	ON_WM_DESTROY()
	ON_BN_CLICKED(IDC_LISTENB, OnListen)
	ON_BN_CLICKED(IDB_RECEIVE, OnReceive)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CServerDlg message handlers

void CServerDlg::OnOK() 
{

}

void CServerDlg::OnDestroy() 
{
	CDialog::OnDestroy();
	
	if (WSACleanup() != 0){
		TRACE("UnInitilize Error:%d\n", WSAGetLastError());
	}	
}

void CServerDlg::OnListen() 
{
		CWnd *pwnd=GetDlgItem(IDC_STATIC1);

    if(m_hSocket != NULL){
		closesocket(m_hSocket);
		m_hSocket = NULL;
	}
	if(m_hSocket == NULL){
		m_hSocket = socket(AF_INET, SOCK_STREAM,0);
		ASSERT(m_hSocket != NULL);
	}
	UpdateData();

	m_addr.sin_family = AF_INET;
	m_addr.sin_addr.S_un.S_addr = INADDR_ANY;
	m_addr.sin_port = htons(m_nServerPort);

	int ret = 0;
	int error = 0;
	ret = bind(m_hSocket, (LPSOCKADDR)&m_addr, sizeof(m_addr));
	if(ret == SOCKET_ERROR){
		TRACE("Bind Error: %d \n", (error = WSAGetLastError()));
		return ;
	}
	else
	{
		pwnd->SetWindowText ("bind success!");
	}
	ret = listen(m_hSocket, 2);
	if(ret == SOCKET_ERROR){
		TRACE("Listen Error: %d \n", (error = WSAGetLastError()));
		return ;
	}
	else
		pwnd->SetWindowText ("listening!");
	
}

void CServerDlg::OnReceive() 
{	
	int error=0;
	int ret=0;
	SOCKET s = accept(m_hSocket, NULL, NULL);
	if(s == SOCKET_ERROR){
		TRACE("Accept Error: %d \n", (error = WSAGetLastError()));
		return ;
	}
	ret = recv(s, buff, 256, 0);
	
	if(ret == 0 || ret == SOCKET_ERROR ){
		TRACE("Recv data error: %d\n", WSAGetLastError());
		return ;
	}
	buff[ret]='\0';
	CString str(buff);
    m_nServerText=str;
	UpdateData(FALSE);
	closesocket(s);

}

⌨️ 快捷键说明

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