Есть вопрос?
Зайди на форум

Поиск:

Denix: русификация Ubuntu и кодеки :: RSS:: Скачать книги Колисниченко в PDF

Англо-русский словарь компьютерных терминов (Д. Колисниченко)

A  B  C  D  E  F  G  H  I  K  L  M  N  O  P  Q  R  S  T  V  W  X  Y  Z 

укрпочта отслеживание посылок перевод денег график отключения света в Кировограде график отключения счета в Киеве график отключения света в Одессе (zip)

Фрагмент из книги Дениса Колисниченко "Разработка Linux-приложений"

22.1. Создание приложения клиент/сервер

22.1.1. Программа-сервер

Настало время задействовать полученные знания на практике. Мы напишем простую программу-сервер, ожидающую подключения клиента. После того, как клиент подключился, сервер отправит ему приветствие, и будет ждать от клиента любой текстовой строки. Сервер прочитает данные, полученные от клиента, и выведет их на экран.

Нужно отметить, что программы (клиент и сервер) будут сугубо демонстрационными и их исходный код, исходя из соображений демонстрации обмена данными между клиентом и сервером, будет существенно упрощен. В частности, мы не будем производить обработку ошибок. Если программа-клиент запустится и сразу завершит работу, проверьте, правильно ли вы указали адрес сервера и номер порта (если вы будете использовать номер порта и имя сервера, отличные от используемых в листингах программ).

Исходный код программы-сервера представлен в листинге 22.1. Каждая строка в листинге 22.1 прокомментирована, поэтому внимательно читайте комментарии, чтобы понять, что делает программа.

Листинг 22.1. Программа server.c

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <memory.h>
#include <stdio.h>
#include <stdlib.h>

/* порт сервера, к этому порту должен подключаться клиент */
#define PORT 3333
/* размер буфера */
#define BUF_SIZE 64
/* приглашение сервера, его увидит клиент после подключения к серверу */
#define MSG_TO_SEND "My Simple Server v0.0.1\n"

int main () {
/* сокеты для клиента и сервера */
int server_socket, client_socket;

/* длина ответа и счетчик клиентов */
int answer_len, count=0;

/* буфер для чтения данных */
char buffer[BUF_SIZE];
/* структуры sockaddr_in для клиента и сервера (sin) */
struct sockaddr_in sin, client;

/* создаем сокет сервера *.
server_socket = socket (AF_INET, SOCK_STREAM, 0);
/* заполняем память, см. man memset 
   данная операция используется для очистки структуры */
memset ((char *)&sin, '\0', sizeof(sin));

/* заполняем структуру sin */
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = INADDR_ANY;
sin.sin_port = PORT;

/* связываем сокет сервера с портом 3333 */
bind (server_socket, (struct sockaddr *)&sin, sizeof(sin));

/* сообщаем о своем запуске */
printf("Server started.\n");

/* слушаем сокет сервера */
listen (server_socket, 3);

/* запускаем бесконечный цикл для принятия запросов от клиентов,
завершить работу программы можно, нажав Ctrl + C */
while (1) {
	/* вычисляем длину ответа */
	answer_len = sizeof(client);
	/* принимаем запрос клиента */
	client_socket = accept (server_socket, 
 (struct sockaddr *) &client, &answer_len);
       /* отправляем клиенту приветствие */
	write (client_socket, MSG_TO_SEND, sizeof(MSG_TO_SEND));
	/* увеличиваем счетчик клиента */
	count++;
	/* читаем ответ клиента в буфер,
       переменная anser_len будет содержать к-во прочитанных байтов */
	answer_len = read (client_socket, buffer, BUF_SIZE);
	/* выводим на стандартный вывод ответ клиента */
	write (1, buffer, answer_len);
	/* выводим порядковый номер клиента */
	printf("Client no %d\n",count);
	/* разрываем соединение */
	shutdown (client_socket, 0);
	/* закрываем сокет */
	close (client_socket);
 };

return 0; 
}

Как видите, программа-сервер получилась компактной и не очень сложной для восприятия. Программа выводит только строку, полученную от клиента и порядковый номер клиента. При желании вы можете усложнить программу, добавив вывод адреса клиента:

fprintf(stdout, "Client connected: %s\n", inet_ntoa(client.sin_addr));

Можно добавить обработку ошибок при создании сокета, его привязке и вызове accept():

if (server_socket = socket (AF_INET, SOCK_STREAM, 0) < 0) {
printf("Failed to create socket");
exit(1);
}
…
if (bind (server_socket, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
printf("Failed to bind the server socket");
exit(1);
}
…
/* строку нужно добавить после вызова accept */
if (client_socket < 0) 
{
printf("Failed to accept client connection");
exit(1);
}

Одним словом, усовершенствование программы остается на ваше усмотрение, а мы тем временем напишем программу-клиент.

На главную

Мне нравится!

Сегодня: 18/01

Поздравлять сегодня некого

Последние посты форума

Интересная картинка

Samsung Galaxy J2 Prime (SM-G532F)

дааа

Обучение PHP-программированию

Новый дизайн сайта

Возвращение на динамическую страницу сайта

С Новым Годом!

Бесплатный хостинг, SSL сертификат, не ограниченно

капец погода в ноябре у нас

Посоветуйте хостинг

флэшмобы

вот люди где живут... экстрим

авто-дилеры

Программы для Linux

книга Командная строка Linux и автоматизация рутинных задач

Совет:

Книги Д. Колисниченко:

Linux

Самоучитель Linux openSUSE 11.2Самоучитель Linux openSUSE 11.2
Книга предназначена для домашнего и офисного начинающего пользователя Linux и по-может ему самостоятельно установить и настроить операционную систему openSUSE 11.2, разработанную в соответствии со всеми принципами Open Source.                                                                           

Серверное применение Linux. 3-е изд.Серверное применение Linux. 3-е изд.
Описана настройка различных типов серверов: Web-, FTP-, DNS-, DHCP-, почтового сервера, сервера баз данных. Подробно рассмотрена установка и базовая настройка операционной системы                                                                                                                          

Администрирование Unix-сервера и Linux-станцийАдминистрирование Unix-сервера и Linux-станций
Книга описывает процесс развертывания и администрирования сети на основе Unix-сервера и Linux-рабочих станций.                                                                                                                                                                                               

PHP

PHP 5/6 и MySQL 6. Разработка Web-приложенийPHP 5/6 и MySQL 6. Разработка Web-приложений
На практических примерах описана разработка Web-приложений на языке PHP версий 5 и 6. Лучшая моя книга по PHP, ищите в продаже 3-е издание! Издательство БХВ- Петербург                                                                                                                                      

HTML 5 & CSS 3 - практическо програмиране за начинаещиHTML 5 & CSS 3 - практическо програмиране за начинаещи
Тази книга ще ви научи как да прилагате на практика HTML 5 и CSS 3 и да се възползвате от богатите възможности, предлагани в новите уеб стандарти. Изданието е предназначено за всеки, който е решил да се възползва от съвременните технологии за уеб диз                                                   

PHP и MySQL. Разработка Web-приложений. 4-е издPHP и MySQL. Разработка Web-приложений. 4-е изд
Даны начала программирования на PHP: установка и настройка Apache, PHP, MySQL и кроссплатформенной сборки XAMPP, выбор редактора PHP-кода, синтаксис языка и самые полезные функции PHP 5.4. Рассмотрено создание собственного движка сайта и ряда дополни                                                   

Интернет/CMS

Блоги: создание, раскрутка, заработокБлоги: создание, раскрутка, заработок
Эта книга — практическое руководство по созданию и продвижению блога, его раскрутке и популяризации, а также превращению в инструмент, приносящий реальные доходы.                                                                                                                                           

Новейший самоучитель компьютера и ИнтернетНовейший самоучитель компьютера и Интернет
О такой книге долгие годы мечтали миллионы начинающих пользователей, которые осваивали технику самостоятельно или по непонятным, громоздким руководствам.                                                                                                                                                    

IRC, IRC-каналы, IRC-боты: как пользоваться и как сделать самому. Избранные технологии ИнтернетаIRC, IRC-каналы, IRC-боты: как пользоваться и как сделать самому. Избранные технологии Интернета
Эта книга целиком посвящена IRC – технологии, позволяющей создавать каналы многопользовательского общения                                                                                                                                                                                                    

Компьютер/Windows

Microsoft Windows 8 для пользователейMicrosoft Windows 8 для пользователей
Описаны нововведения Windows 8, особое внимание уделено использованию системы на планшете. Рассмотрена установка системы как на физический компьютер (стационарный, ноутбук, нетбук, планшет)                                                                                                                

Самоучитель Microsoft Windows 10Самоучитель Microsoft Windows 10
Вас интересует новейшая версия Windows - Windows 10? Тогда эта книга для вас. Она содержит необходимые и достаточные сведения для реальной работы с программой. Описаны как базовые функции, так и основные новинки Windows 10                                                                               

Супер Флешка. 150 лучших программ, игр и утилит, работающих прямо с флешкиСупер Флешка. 150 лучших программ, игр и утилит, работающих прямо с флешки
На сегодняшний день практически у каждого пользователя компьютера имеется флешка, которая используется для переноса файлов                                                                                                                                                                                   

Сети

Беспроводная сеть дома и в офисеБеспроводная сеть дома и в офисе
Книга поможет начинающему администратору домашней или офисной сети в кратчайшие сроки развернуть, настроить или модернизировать беспроводную сеть. Отличный выбор для построения сети SOHO                                                                                                                   

Сделай сам компьютерную сеть. Монтаж, настройка, обслуживание. Изд. 2.Сделай сам компьютерную сеть. Монтаж, настройка, обслуживание. Изд. 2.
Книга о настройке сети в Windows (98,NT,XP) и Linux. Является превосходным практическим руководством по созданию и обслуживанию компьютерных сетей.                                                                                                                                                          

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

Безопасность

Анонимность и безопасность в Интернете. От Анонимность и безопасность в Интернете. От "чайника" к пользователю
Простым и понятным языком рассказано, как скрыть свое местонахождение и IP-адрес, используя анонимные сети Tor и I2P, посетить заблокированные администратором сайты, защитить личную переписку от посторонних глаз                                                                                          

Rootkits под Windows. Теория и практика программирования “шапок-невидимок“, позволяющих скрывать от системы данные, процессы, сетевые соединения.Rootkits под Windows. Теория и практика программирования “шапок-невидимок“, позволяющих скрывать от системы данные, процессы, сетевые соединения.
-                                                                                                                                                                                                                                                                                                            

Автомобили

150 ситуаций на дороге, которые должен уметь решать каждый водила150 ситуаций на дороге, которые должен уметь решать каждый водила
Опытный инструктор кратко и четко расскажет, что следует делать водителю в 150 самых различных ситуациях на дороге, которые могут опустошить ваш кошелек, испортить нервы или здоровье                                                                                                                       

Перед покупкой авто. Все, что необходимо знать покупателюПеред покупкой авто. Все, что необходимо знать покупателю
Книга отвечает на все вопросы, которые нужно прояснить для себя перед...                                                                                                                                                                                                                                     

Контраварийное вождение. Советы - Best. Советует и рекомендует президент клуба BMWКонтраварийное вождение. Советы - Best. Советует и рекомендует президент клуба BMW
Ценность этой книги в том, что впервые советы по контраварийному вождению вам будет давать проверенный профи...                                                                                                                                                                                              

Переводные книги

Переводные книгиПереводные книги
Данные книги были переведены мною на русский язык (с английского и чешского). Надеюсь качество перевода вам понравится!                                                                                                                                                                                      

Android

Безопасный Android: защищаем свои деньги и данные от кражиБезопасный Android: защищаем свои деньги и данные от кражи
Рассмотрены различные способы обеспечения безопасности Android-устройств: шифрование персональной информации, хранящейся на устройстве, шифрование передаваемых данных, VPN-соединения, анонимизация трафика                                                                                             

Планшет и смартфон на базе Android для ваших родителейПланшет и смартфон на базе Android для ваших родителей
Книга рассчитана на людей среднего и старшего возраста. Она поможет освоить современный «карманный компьютер» на базе Android, в котором все новое и "не так, как в Windows". Доступным языком описывается, как включить и выключить смартфон и т.д.                                                         

Планшет и смартфон на базе Android для ваших родителей, 2-е изд.Планшет и смартфон на базе Android для ваших родителей, 2-е изд.
Книга знакомит читателя с мобильными устройствами на базе Android. Она написана простым и понятным языком для людей среднего и старшего возраста                                                                                                                                                             

Статьи

Rambler's Top100