Добавил:
Yanus
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
// MessagerDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Messager.h"
#include "MessagerDlg.h"
#include ".\messagerdlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// Implementation
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()
// CMessagerDlg dialog
CMessagerDlg::CMessagerDlg(CWnd* pParent /*=NULL*/)
: CDialog(CMessagerDlg::IDD, pParent)
, m_cln(_T(""))
, m_but(false)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CMessagerDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT1, m_cln);
DDX_Control(pDX, IDC_COMBO1, m_combo);
DDX_Control(pDX, IDC_EDIT1, m_mk);
DDX_Control(pDX, IDC_LIST1, m_list);
}
BEGIN_MESSAGE_MAP(CMessagerDlg, CDialog)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_BN_CLICKED(IDC_BUTTON3, OnBnClickedButton3)
ON_BN_CLICKED(IDC_BUTTON2, OnBnClickedButton2)
ON_BN_CLICKED(IDC_BUTTON1, OnBnClickedButton1)
ON_BN_CLICKED(IDC_BUTTON4, OnBnClickedButton4)
ON_BN_CLICKED(IDOK, OnBnClickedOk)
ON_BN_CLICKED(IDC_BUTTON5, OnBnClickedButton5)
END_MESSAGE_MAP()
// CMessagerDlg message handlers
BOOL CMessagerDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}
void CMessagerDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CMessagerDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
// The system calls this function to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CMessagerDlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
void CMessagerDlg::OnBnClickedButton3()
{
m_cln=" ";
UpdateData(FALSE); // Обновить экран
// TODO: Add your control notification handler code here
}
void CMessagerDlg::OnBnClickedButton2()
{
WinExec("C:\\Program Files\\server.exe",SW_SHOW );
// TODO: Add your control notification handler code here
}
void CMessagerDlg::OnBnClickedButton1()
{
//активизация окна служебной информации по нажатию
//кнопки "Send"
{if (m_but==TRUE)
GetDlgItem(IDC_LIST1)->ShowWindow( SW_HIDE);
else
GetDlgItem(IDC_LIST1)->ShowWindow(SW_SHOW); }
char buf[500], ss[10], buf2[500];
struct sockaddr_in sin2;//структура используется Гнездами Окон, чтобы определить
//местный или отдаленный конец, пункт(точка)
//адресует, чтобы соединить гнездо.
CString comp;
CString mes;
CString mes00;
BYTE b; //восьми-битовое число "b" без знака
CSocket cs;
CString sss="";
CString ww;
CString www;
int port1=2000;
struct hostent *hp;
//Получить имя компьютера
m_mk.GetWindowText(mes);
m_combo.GetWindowText(comp);
m_combo.AddString(comp);
//попробовать обнаружить адрес компьютера
hp=gethostbyname(comp);
if (hp==NULL)
{
m_list.AddString("Компьютер "+comp+" не обнаружен");
return;
}
// else m_list.AddString("Это ваш компьютер");
//представление адреса в стандарте 255.233.44.4
for(int i=0; i<4; i++)
{
b=BYTE(*(hp->h_addr+i));
itoa(b,ss,10);
sss=sss+ss;
if(i!=3) sss=sss+".";
}
sss=":"+sss;
www=" IP"+sss;
sss=comp+sss;
ww=comp;
ww=ww+www;
sss="Адрес "+sss;
m_list.AddString(sss);
//работа со структурой sin2
memset ((char*)&sin2,'\0',sizeof(sin2));
sin2.sin_family=AF_INET;
sin2.sin_port=port1;
memcpy((char*)&sin2.sin_addr,hp->h_addr,hp->h_length);
//создать сокет
if(cs.Create()==0)
{
int i=GetLastError();
itoa(i,ss,10);
sss=ss;
sss="Ошибка"+sss;
m_list.AddString(sss);
cs.Close();
return;
};
//Попытка соединения с сервером
if (cs.Connect((struct sockaddr*)&sin2, sizeof(sin2))==0)
{
int i=GetLastError();
itoa(i,ss,10);
sss=ss;
sss="Ошибка"+sss;
m_list.AddString(sss);
cs.Close();
return;
}
//Получение информации от сервера
int l=cs.Receive(buf,40);
if (l>0&&1<100);
{
buf[l]='\0';
strcat(buf," ");
m_list.AddString(buf);
};
//mes="Вам пришло сообщение от адресата: "+ww+"\n"+"----------------"+"\n"+mes;
mes00="Вам пришло сообщение от адресата: "+ww+"\n"+"----------------"+"\n";
//Отправка информации сереверу
strcpy(buf2,mes00);
strcpy(buf,mes);
strcat(buf2,buf);
cs.Send(buf2,strlen(buf2));
cs.Close();
// TODO: Add your control notification handler code here
}
void CMessagerDlg::OnBnClickedButton4()
{
//активизация окна служебной информации по нажатию
//кнопки "Send"
{if (m_but==TRUE)
GetDlgItem(IDC_LIST1)->ShowWindow( SW_HIDE);
else
GetDlgItem(IDC_LIST1)->ShowWindow(SW_SHOW); }
char buf[500], ss[10], buf2[500];
struct sockaddr_in sin2;//структура используется Гнездами Окон, чтобы определить
//местный или отдаленный конец, пункт(точка)
//адресует, чтобы соединить гнездо.
CString comp;
CString mes;
CString mes00;
BYTE b; //восьми-битовое число "b" без знака
CSocket cs;
CString sss="";
CString ww;
CString www;
int port1=2000;
struct hostent *hp;
//Получить имя компьютера
m_mk.GetWindowText(mes);
m_combo.GetWindowText(comp);
m_combo.AddString(comp);
//попробовать обнаружить адрес компьютера
hp=gethostbyname(comp);
if (hp==NULL)
{
m_list.AddString("Компьютер "+comp+" не обнаружен");
return;
}
// else m_list.AddString("Это ваш компьютер");
//представление адреса в стандарте 255.233.44.4
for(int i=0; i<4; i++)
{
b=BYTE(*(hp->h_addr+i));
itoa(b,ss,10);
sss=sss+ss;
if(i!=3) sss=sss+".";
}
sss=":"+sss;
www=" IP"+sss;
sss=comp+sss;
ww=comp;
ww=ww+www;
sss="Адрес "+sss;
m_list.AddString(sss);
//работа со структурой sin2
memset ((char*)&sin2,'\0',sizeof(sin2));
sin2.sin_family=AF_INET;
sin2.sin_port=port1;
memcpy((char*)&sin2.sin_addr,hp->h_addr,hp->h_length);
//создать сокет
if(cs.Create()==0)
{
int i=GetLastError();
itoa(i,ss,10);
sss=ss;
sss="Ошибка"+sss;
m_list.AddString(sss);
cs.Close();
return;
};
//Попытка соединения с сервером
if (cs.Connect((struct sockaddr*)&sin2, sizeof(sin2))==0)
{
int i=GetLastError();
itoa(i,ss,10);
sss=ss;
sss="Ошибка"+sss;
m_list.AddString(sss);
cs.Close();
return;
}
//Получение информации от сервера
int l=cs.Receive(buf,40);
if (l>0&&1<100);
{
buf[l]='\0';
strcat(buf," ");
m_list.AddString(buf);
};
//mes="Вам пришло сообщение от адресата: "+ww+"\n"+"----------------"+"\n"+mes;
mes00="Вам пришло сообщение от адресата: "+ww+"\n"+"----------------"+"\n";
//Отправка информации сереверу
strcpy(buf2,mes00);
strcpy(buf,mes);
/*for (int i=0;i<500;i++) {
switch (buf[i]) {
case ' ': buf[i]='~'; break;
case '.': buf[i]='!'; break;
case ',': buf[i]='@'; break;
case '-': buf[i]='#'; break;
case '0': buf[i]='$'; break;
case '1': buf[i]='%'; break;
case '2': buf[i]='^'; break;
case '3': buf[i]='&'; break;
case '4': buf[i]='*'; break;
case '5': buf[i]='q'; break;
case '6': buf[i]='w'; break;
case '7': buf[i]='e'; break;
case '8': buf[i]='r'; break;
case '9': buf[i]='t'; break;
case 'й': buf[i]='y'; break;
case 'ц': buf[i]='u'; break;
case 'у': buf[i]='i'; break;
case 'к': buf[i]='o'; break;
case 'е': buf[i]='p'; break;
case 'н': buf[i]='a'; break;
case 'г': buf[i]='s'; break;
case 'ш': buf[i]='d'; break;
case 'щ': buf[i]='f'; break;
case 'з': buf[i]='g'; break;
case 'х': buf[i]='h'; break;
case 'ъ': buf[i]='j'; break;
case 'ё': buf[i]='k'; break;
case 'ф': buf[i]='l'; break;
case 'ы': buf[i]='z'; break;
case 'в': buf[i]='x'; break;
case 'а': buf[i]='c'; break;
case 'п': buf[i]='v'; break;
case 'р': buf[i]='b'; break;
case 'о': buf[i]='n'; break;
case 'л': buf[i]='m'; break;
case 'д': buf[i]=':'; break;
case 'ж': buf[i]=';'; break;
case 'э': buf[i]='й'; break;
case 'я': buf[i]='ц'; break;
case 'ч': buf[i]='у'; break;
case 'с': buf[i]='к'; break;
case 'м': buf[i]='е'; break;
case 'и': buf[i]='н'; break;
case 'т': buf[i]='г'; break;
case 'ь': buf[i]='ш'; break;
case 'б': buf[i]='щ'; break;
case 'ю': buf[i]='з'; break;
case 'q': buf[i]='д'; break;
case 'w': buf[i]='л'; break;
case 'e': buf[i]='о'; break;
case 'r': buf[i]='р'; break;
case 't': buf[i]='п'; break;
case 'y': buf[i]='а'; break;
case 'u': buf[i]='в'; break;
case 'i': buf[i]='ы'; break;
case 'o': buf[i]='ф'; break;
case 'p': buf[i]='я'; break;
case 'a': buf[i]='ч'; break;
case 's': buf[i]='с'; break;
case 'd': buf[i]='м'; break;
case 'f': buf[i]='и'; break;
case 'g': buf[i]='т'; break;
case 'h': buf[i]='ь'; break;
case 'j': buf[i]='<'; break;
case 'k': buf[i]='>'; break;
case 'l': buf[i]='"'; break;
case 'z': buf[i]='`'; break;
case 'x': buf[i]='1'; break;
case 'c': buf[i]='2'; break;
case 'v': buf[i]='3'; break;
case 'b': buf[i]='4'; break;
case 'n': buf[i]='5'; break;
case 'm': buf[i]='6'; break;
case '!': buf[i]='7'; break;
case '@': buf[i]='8'; break;
case '(': buf[i]='9'; break;
case ')': buf[i]='0'; break;
case '"': buf[i]='+'; break;
}
}*/
strcat(buf2,buf);
for (int i=0;i<500;i++) {
switch (buf2[i]) {
case ' ': buf2[i]='~'; break;
case '.': buf2[i]='!'; break;
case ',': buf2[i]='@'; break;
case '-': buf2[i]='#'; break;
case '0': buf2[i]='$'; break;
case '1': buf2[i]='%'; break;
case '2': buf2[i]='^'; break;
case '3': buf2[i]='&'; break;
case '4': buf2[i]='*'; break;
case '5': buf2[i]='q'; break;
case '6': buf2[i]='w'; break;
case '7': buf2[i]='e'; break;
case '8': buf2[i]='r'; break;
case '9': buf2[i]='t'; break;
case 'й': buf2[i]='y'; break;
case 'ц': buf2[i]='u'; break;
case 'у': buf2[i]='i'; break;
case 'к': buf2[i]='o'; break;
case 'е': buf2[i]='p'; break;
case 'н': buf2[i]='a'; break;
case 'г': buf2[i]='s'; break;
case 'ш': buf2[i]='d'; break;
case 'щ': buf2[i]='f'; break;
case 'з': buf2[i]='g'; break;
case 'х': buf2[i]='h'; break;
case 'ъ': buf2[i]='j'; break;
case 'ё': buf2[i]='k'; break;
case 'ф': buf2[i]='l'; break;
case 'ы': buf2[i]='z'; break;
case 'в': buf2[i]='x'; break;
case 'а': buf2[i]='c'; break;
case 'п': buf2[i]='v'; break;
case 'р': buf2[i]='b'; break;
case 'о': buf2[i]='n'; break;
case 'л': buf2[i]='m'; break;
case 'д': buf2[i]=':'; break;
case 'ж': buf2[i]=';'; break;
case 'э': buf2[i]='й'; break;
case 'я': buf2[i]='ц'; break;
case 'ч': buf2[i]='у'; break;
case 'с': buf2[i]='к'; break;
case 'м': buf2[i]='е'; break;
case 'и': buf2[i]='н'; break;
case 'т': buf2[i]='г'; break;
case 'ь': buf2[i]='ш'; break;
case 'б': buf2[i]='щ'; break;
case 'ю': buf2[i]='з'; break;
case 'q': buf2[i]='д'; break;
case 'w': buf2[i]='л'; break;
case 'e': buf2[i]='о'; break;
case 'r': buf2[i]='р'; break;
case 't': buf2[i]='п'; break;
case 'y': buf2[i]='а'; break;
case 'u': buf2[i]='в'; break;
case 'i': buf2[i]='ы'; break;
case 'o': buf2[i]='ф'; break;
case 'p': buf2[i]='я'; break;
case 'a': buf2[i]='ч'; break;
case 's': buf2[i]='с'; break;
case 'd': buf2[i]='м'; break;
case 'f': buf2[i]='и'; break;
case 'g': buf2[i]='т'; break;
case 'h': buf2[i]='ь'; break;
case 'j': buf2[i]='<'; break;
case 'k': buf2[i]='>'; break;
case 'l': buf2[i]='"'; break;
case 'z': buf2[i]='`'; break;
case 'x': buf2[i]='1'; break;
case 'c': buf2[i]='2'; break;
case 'v': buf2[i]='3'; break;
case 'b': buf2[i]='4'; break;
case 'n': buf2[i]='5'; break;
case 'm': buf2[i]='6'; break;
case '!': buf2[i]='7'; break;
case '@': buf2[i]='8'; break;
case '(': buf2[i]='9'; break;
case ')': buf2[i]='0'; break;
case '"': buf2[i]='+'; break;
case ':': buf2[i]='?'; break;
}
}
cs.Send(buf2,strlen(buf2));
cs.Close();
// TODO: Add your control notification handler code here
}
void CMessagerDlg::OnBnClickedOk()
{
// TODO: Add your control notification handler code here
OnOK();
}
void CMessagerDlg::OnBnClickedButton5()
{
WinExec("C:\\Program Files\\servercode.exe",SW_SHOW );
// TODO: Add your control notification handler code here
}
Соседние файлы в папке Messager