for(i = 0; i < nBlocs; i++, pDst++, pSrc++) // цикл гаммирования
открытого
*pDst = *pSrc ^ gamma(0); // текста блоками по 32 бита[nBlocs * 4] = 0;// вставить завершающий символ 0nBlocs * 4 + 1;// возвратить число байт в зашифрованном тексте
}
Приложение “Клиент”
#include "stdafx.h"
#include "llip_client.h"
#include "MainFrm.h"
#include "llip_clientDoc.h"
#include "llip_clientView.h"
#include "PropDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILEchar THIS_FILE[] = FILE ;
#endif_MESSAGE_MAP(CLlip_clientApp, CWinApp)
//{{AFX_MSG_MAP(CLlip_clientApp)_COMMAND(ID_APP_ABOUT, OnAppAbout)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
// Standard file based document commands_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)_MESSAGE_MAP()_clientApp::CLlip_clientApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}_clientApp theApp;CLlip_clientApp::InitInstance()
{short port; // порт сервераlong addr; // адрес сервераd(NULL);(d.DoModal() == IDOK) {= d.m_port;(m_pwd, d.m_pwd.operator LPCTSTR(), 20);= *((unsigned long*) d.m_addr);
}false;(!AfxSocketInit())
{(IDP_SOCKETS_INIT_FAILED);FALSE;
}
#ifdef _AFXDLLdControls();// Call this when using MFC in a shared DLL
#elsedControlsStatic();// Call this when linking to MFC statically
#endif(_T("Local AppWizard-Generated Applications"));(0); // Load standard INI file options (including )* pDocTemplate;= new CSingleDocTemplate(_MAINFRAME,_CLASS(CLlip_clientDoc),_CLASS(CMainFrame), // main SDI frame window_CLASS(CLlip_clientView));(pDocTemplate);
// Parse command line for standard shell commands, DDE, file opencmdInfo;(cmdInfo);
// Dispatch commands specified on the command line(!ProcessShellCommand(cmdInfo))FALSE;
// The one and only window has been initialized, so show and update it._pMainWnd->ShowWindow(SW_SHOW);_pMainWnd->UpdateWindow();r;_pMainWnd->GetWindowRect(&r);.right = r.left + 500;.bottom = r.top + 380;_pMainWnd->MoveWindow(&r);
sockaddr_in sa;// структура данных гнезда
s = socket(AF_INET, SOCK_STREAM, 0);// создать гнездо(s == INVALID_SOCKET)
{(NULL, "Socket error.", "Ошибка", MB_OK);0;
}(addr == INADDR_NONE) // при ошибке
{(NULL, "Invalid IP address.", "Ошибка", MB_OK);(s);0;
}.sin_family = AF_INET;// заполнить структуру данных гнезда.sin_port = htons(port);.sin_addr.s_addr = addr;
// установить соединение:(connect(s, (sockaddr*)&sa, sizeof(sa)) == SOCKET_ERROR)
{(NULL, "Connect error.", "Ошибка", MB_OK);(s);0;
}TRUE;
}CAboutDlg : public CDialog
{:();
// Dialog Data
//{{AFX_DATA(CAboutDlg){ IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg):void DoDataExchange(CDataExchange* pDX); // DDX/DDV
//}}AFX_VIRTUAL
// Implementation:
//{{AFX_MSG(CAboutDlg)
// No message handlers
//}}AFX_MSG_MESSAGE_MAP()
};::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}CAboutDlg::DoDataExchange(CDataExchange* pDX)
{::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP_MESSAGE_MAP()
// App command to run the dialogCLlip_clientApp::OnAppAbout()
{aboutDlg;.DoModal();
}CLlip_clientApp::ExitInstance()
{(s); // закрыть гнездоCWinApp::ExitInstance();}
Приложение Б (обязательное)
Диаграммы
Рисунок 7. (приложение Б) - диаграмма вариантов использования
Самое читаемое:
Блок формирования сигналов вспомогательного гетеродина
Многие
могут заметить, что развитие и усовершенствование военной техники в недавние
годы идет семимильными шагами. Это и воздушные, и наземные и надводные
подвижные объекты. Такие быстрые темпы роста привели к необходимости создания
дистанционных средств раннего оповещения о складывающейся обстановке. Поэтому
был разработан новый ...