sendmsgdlg.cpp

来自「初学VC,编写的一个机房管理系统,功能基本上完善,但代码可读性不强.」· C++ 代码 · 共 98 行

CPP
98
字号
// SendMsgDlg.cpp : implementation file
//

#include "stdafx.h"
#include "server.h"
#include "SendMsgDlg.h"
#include <Winsock2.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CString ip;
/////////////////////////////////////////////////////////////////////////////
// CSendMsgDlg dialog


CSendMsgDlg::CSendMsgDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CSendMsgDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSendMsgDlg)
	receiver = _T("");
	msg = _T("");
	//}}AFX_DATA_INIT
}


void CSendMsgDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSendMsgDlg)
	DDX_Text(pDX, IDC_RECEIVER, receiver);
	DDX_CBString(pDX, IDC_MSG, msg);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSendMsgDlg, CDialog)
	//{{AFX_MSG_MAP(CSendMsgDlg)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSendMsgDlg message handlers

void CSendMsgDlg::OnOK() 
{
	// TODO: Add extra validation here
		UpdateData(TRUE);
		SOCKADDR_IN addrSrv;
		SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);
		addrSrv.sin_addr.S_un.S_addr=inet_addr(ip);
		addrSrv.sin_family =AF_INET;
		addrSrv.sin_port=htons(6001);
		int ret = 0;
		int error = 0;
		//char sendmsgbuf[100]=msg;
	//	sendmsgbuf[0]='7';
	//	sendmsgbuf[1]=char(0);
		CString m_msg;
		m_msg="9";
		m_msg+=char(msg.GetLength());
		m_msg+=msg;
		ret = connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
		if(ret == SOCKET_ERROR)
		{
				TRACE("Connect Error: %d \n", (error = WSAGetLastError()));
				if(error == 10061)
				MessageBox("客户端遇到错误,请检查!","错误",MB_ICONERROR | MB_OK);
				return;
		}
		else
		{
			ret = send(sockClient, m_msg,100, 0);
			if(ret != 100)
			{
				MessageBox("客户端遇到错误,请检查!","错误",MB_ICONERROR | MB_OK);
				return;
			}
		}
	CDialog::OnOK();
}

BOOL CSendMsgDlg::OnInitDialog()
{
	CDialog::OnInitDialog();
	receiver=ip;
	UpdateData(FALSE);
	CStatic *mComb = (CStatic*)GetDlgItem(IDC_RECEIVER);
	mComb->EnableWindow(FALSE);
	mComb->SetFocus();


	return 1;


}

⌨️ 快捷键说明

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