Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
22
Добавлен:
19.04.2015
Размер:
205.31 Кб
Скачать

3.2 Побудова клієнта

Тепер напишемо клієнтський додаток. Назвемо проект Clnt і виберемо тип додатка Dialog based. Як і при побудові сервера включимо підтримку Windows Sockets, необов’язкові елементи відключимо.

У діалоговому вікні розмістимо на формі дві кнопки і елемент Еdit. Для кнопок задамо ідентифікатори IDC_CONNECT і IDC_SEND, а для Edit – IDC_DATA. Властивість Caption для кнопок установимо в Connect і Send відповідно. За першою кнопкою наш клієнт буде з'єднуватися із сервером, за другою – відправляти дані, введені користувачем у Edit. Наша форма буде виглядати приблизно так:

Елементу Edit припишемо за допомогою ClassWizard змінну m_sData типу CEdit.

Тепер приступаємо безпосередньо до написання коду. Додамо в наш проект клас CMySocket. Предком цього класу виберемо клас CSocket точно так, як і для серверної частини. Цей клас повинен містити покажчик на діалогове вікно. Для створення такого покажчика додамо відповідну змінну в public-секцію нашого класу:

public:

CClntDlg* m_pDlg; .

Оскільки ми використовуємо клас CClntDlg, то додамо рядок

class CClntDlg;

перед оголошенням класу CMySocket.

Як і для серверної частини, додамо в клас CMySocket метод, у якому для змінної m_pDlg буде задаватися конкретне значення:

void CMySocket::SetParentDlg(CClntDlg *pDlg)

{

m_pDlg=pDlg;

}

Тепер додамо в файлі ClntDlg.h в діалоговий клас CClntDlg змінну, у якій буде зберігатися екземпляр класу CMySocket:

#include "MySocket.h"

. . .

class CClntDlg : public CDialog

{

public:

CMySocket m_pConnectSocket;

Як і для сервера тут записано відповідний include.

Додамо такий код у метод OnInitDialog класу CClntDlg:

BOOL CClntDlg::OnInitDialog()

{

. . .

// TODO: Add extra initialization here

m_pConnectSocket.SetParentDlg(this);

m_pConnectSocket.Create();

. . .

}

У цьому коді ми записуємо в змінну m_pDlg класу CMySocket адресу клієнтського діалогового вікна.

Додамо далі код, що буде виконуватися при натисканні на кнопки з заголовками Connect і Send:

void CClntDlg::OnConnect()

{

m_pConnectSocket.Connect("127.0.0.1", 2000);

}

void CClntDlg::OnSend()

{

CHAR str[80];

DWORD lstr;

UpdateData(TRUE);

m_sData.GetWindowText(str,80);

lstr=m_sData.GetWindowTextLength();

m_pConnectSocket.Send(str, lstr);

}

Написання клієнта закінчено.

СПИСОК ЛІТЕРАТУРИ

Основна література

  1. Microsoft Corporation. Компьютерные сети. Сертификация Network+: Учебный курс. – М.: Русская редакция, 2002. – 704с.

  2. Олифер В.Г. Компьютерные сети. Принципы, технологии, протоколы. – СПб.: Питер, 2003. – 864с.

  3. Хортон А. Visual C++ 2008. Базовый курс. – СПб.: “Диалектика”, 2009. – 1280с.

Література видавництва СумДУ

  1. Бабій М.С. Локальні мережі ЕОМ: навчальний посібник. – Суми:СумДУ, 1999. – 64с.

  2. Методические указания к лабораторным работам “Использование сетевых ресурсов Win95”, “Сетевые функции Win32 API”. – Сумы:СумГУ, 1999. – 23с.

Навчальне видання

Методичні вказівки

ДО ВИКОНАННЯ ЛАБОРАТОРНИХ РОБІТ

3 Дисципліни “комп’ютерні мережі”

ДЛЯ СТУДЕНТІВ НАПРЯМУ ПІДГОТОВКИ 0802

ДЕННОЇ ФОРМИ НАВЧАННЯ

Відповідальний за випуск О.П. Чекалов

Редактор Н.М. Мажуга

Комп’ютерне верстання М.С. Бабія

Підписано до друку 26.02.2010, поз.

Формат 60х84/16. Ум. друк. арк. 1,40. Обл.-вид. арк. 1,12. Тираж 50 пр. Зам. №

Собівартість видання грн. к.

Видавець і виготовлювач

Сумський державний університет,

вул. Римського-Корсакова,2, м. Суми, 40007

Свідоцтво суб’єкта видавничої справи ДК № 3062 від 17.12.2007.

Зам. № Наклад 50 Друкарня СумДУ, 2010р.

Соседние файлы в папке Ободяк 3 курс