Глобальные сети компьютеров. Практическое введение в Internet


Приложение SERVERD - часть 4


hwndSb = CreateStatusWindow(WS_CHILD | WS_VISIBLE | WS_BORDER | SBARS_SIZEGRIP, szTemp, hWnd, IDS_STATUSBAR);

return TRUE; }

// ----------------------------------------------------- // Функция WndProc_OnDestroy // ----------------------------------------------------- #pragma warning(disable: 4098) void WndProc_OnDestroy(HWND hWnd) { // Освобождение ресурсов, полученных для // работы с Windows Sockets WSACleanup ();

// Завершение цикла обработки сообщений PostQuitMessage(0); return FORWARD_WM_DESTROY (hWnd, DefWindowProc); }

// ----------------------------------------------------- // Функция WndProc_OnSize // -----------------------------------------------------

#pragma warning(disable: 4098) void WndProc_OnSize(HWND hWnd, UINT state, int cx, int cy) { SendMessage(hwndSb, WM_SIZE , cx, cy); return FORWARD_WM_SIZE (hWnd, state, cx, cy, DefWindowProc); }

// ----------------------------------------------------- // Функция WndProc_OnCommand // -----------------------------------------------------

#pragma warning(disable: 4098) void WndProc_OnCommand(HWND hWnd, int id, HWND hwndCtl, UINT codeNotify) { switch (id) { case IDM_EXIT:

// Уничтожение главного окна прилоджения DestroyWindow(hWnd); break;

case IDM_START:

// Запуск сервера ServerStart(hWnd); break;

case IDM_STOP:

// Останов сервера ServerStop(hWnd); break;

default: MessageBox(NULL, "Unknown command", "Error", MB_OK); }

return FORWARD_WM_COMMAND (hWnd, id, hwndCtl, codeNotify, DefWindowProc); }

// ----------------------------------------------------- // Функция ServerStart // -----------------------------------------------------

void ServerStart(HWND hWnd) { struct sockaddr_in srv_address; int rc;

// Создаем сокет сервера для работы с потоком данных srv_socket = socket(AF_INET , SOCK_DGRAM, 0); if(srv_socket == INVALID_SOCKET) { MessageBox(NULL, "socket Error", "Error", MB_OK); return; }

// Устанавливаем адрес IP и номер порта srv_address.sin_family = AF_INET ; srv_address.sin_addr .s_addr = INADDR_ANY ; srv_address.sin_port = htons(SERV_PORT);




Начало  Назад  Вперед



Книжный магазин