Информационно-вычислительная сеть на основе технологии клиент-сервер, предметная область: "Диски"
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
(buf, 0x55, 20);// UUUUUUUUUUUUUUUUUUUU(buf, pwd, strlen(pwd));// passwordUUUUUUUUUUUU(i = 0, g = 0; i < 20; i++)// свертка пароля+= (unsigned long) (buf[i] << (i % 23));
}(i = 5; i > 0; i--) { // циклический сдвиг на 5 разрядов вправо
flag = g & 1;= g >> 1;(flag)
g |= 0x80000000;
}g; // возвратить значение гаммы
}
// шифрует открытый текст source по паролю pwd
// и записывает шифрованный текст в dest
// шифрование симметричноеcrypt(const char *source, char *dest, char *pwd, int len)
{, nBlocs;long *pSrc, *pDst, g;= (unsigned long *) source;= (unsigned long *) dest;
g = gamma(pwd);// получить гамму шифра= (len + 1) / 4 + 1; // сосчитать число 32-разрядных блоков(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 MRU)* 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;
ShowWindow(SW_SHOW);_pMainWnd->UpdateWindow();r;_pMainWnd->GetWindowRect(&r);.right = r.left + 500;.bottom = r.top + 380;_pMainWnd->MoveWindow(&r);">// 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 support
//}}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();
}
Приложение Б
UML Диаграммы
Рисунок 1 (приложение Б) - диаграмма вариантов использования.
Рисунок 2(приложение Б) - диаграмма деятельности.
Рисунок 3(приложение Б) - диаграмма развертывания.
Рисунок 4(приложение Б) - диаграмма последовательности.
Приложение В
Электрическая структурная схема вычислительной сети
Рисунок 5 (приложение В) - электрическая структурная схема вычислительной сети