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. (приложение Б) - диаграмма вариантов использования

Самое читаемое:
Информационно-вычислительная сеть на основе архитектуры клиент-сервер, предметная область Магазин бытовой техники
Компьютерная сеть обозначает
наборы связанных между собой автономных компьютеров. Два компьютера называются
связанными между собой, если они могут обмениваться информацией. Связь не
обязательно должна осуществляться при помощи медного провода. Могут
использоваться самые разнообразные средства связи, включая волоконную оптику,
...