В данной работе разработка программы выполнена на языке PYTHON в среде программирования PyCharm.2.7.3. Код программы можно условно разделить на несколько основных логических модулей.
. В Python для работы с сокетами используется библиотека socket. С подключения этой библиотеки начинается код как сервера, так и клиента.
. Создание сокета. По примеру - sock = socket.socket(). Эта часть является так же общей как для клиентского, так и для серверного приложений.
.Обозначение хоста и порта сервера. Этот этап осуществляется с помощью метода
Bind() - он связывает сокет с локальной конечной точкой для ожидания входящих запросов на соединение. В качестве параметра метод принимает хост и порт.
4.Установка соединения реализуется с помощью нескольких методов: Listen() - помещает сокет в режим прослушивания (ожидания). Этот метод предназначен только для серверных приложений. В качестве параметра метод принимает возможное число подключений. Метод Accept() создает новый сокет для обработки входящего запроса на соединение. Connect() - Устанавливает соединение с удаленным хостом.
Благодаря методу Raw_input () клиент вводит данные с клавиатуры и результат ввода присваивается некоторой переменной.А метод Send() отправляет данные соединенному сокету.
.Прием данных от клиента и обработка запроса. Этот программный модуль реализуется при помощи метода Recv() - получает данные от соединенного сокета, в качестве аргумента принимает количество байт для чтения. Мы будем читать порциями по 1024 байт (или 1 кб). Чтобы открыть файл (базу данных) для чтения, необходимо использовать метод Open(). В качестве параметра ему передается имя открываемого файла и режим чтения.
. При помощи метода find() мы можем проверить вхождение подстроки переданной в качестве параметра в проверяемой строке.
|
. Метод close() закрывает соединение.
Руководство пользователя
Для того, чтобы начать работу с программой необходимо последовательно запустить файлы "server1.py" и "client1.py" в среде программирования PyCharm.2.7.3. Это можно сделать, нажав правой кнопкой мыши на соответствующую вкладку, и, выбрав действие"Run".
После этого должно открыться окно:
2.Далее пользователь может ввести ключевое слово поиска (Фамилию).
3.Если в базе нет данных, сервер вернет данное сообщение.
4.Чтобы прекратить работу с сервисом необходимо ввести "Выйти".
Заключение
Компьютерный мир глобализируется на основе сетевых коммуникаций и протоколов. Интернет становится обязательным атрибутом повседневности. Все больше появляется приложений, ориентированных на сеть: это серверы баз данных, сетевые игры, различные сетевые протоколы, Web-серверы, апплеты, сервлеты, CGI-скрипты и т.д. Становится необходимым глубокое изучение сетевого программирования.
В ходе создания данной программы я проиллюстрировала принцип работы сокетов с помощью программы автоматического сервера поиска, ознакомилась с языком программирования Python. Данная работа помогла мне закрепить теоретические знания в области вычислительных сетей и открыть для себя новые методы программирования.
Список использованной литературы
1. Марк Пилгрим "Вглубь языка Python", 2002
. Бизли. Д "Python. Подробный справочник", 2010
|
Приложение
Программа серверного приложения:
import socket
sock = socket.socket().bind(('', 9854)).listen(1), adr = sock.accept()
connect.send('Введите фамилию:')
c=1c==1= connect.recv(1024)
записывает в переменную datadata=='выйти':=2.send('Сервис закрыт.')
connect.close()= open('text.txt','r')=0=0line in f:count1==0:=1line.find(data)!=-1:.send(line[0:len(line)-1:1])=0:=1count==1:
connect.send('Пользователь отсутствует в базе.').close()
Программа клиентского приложения:
import socket= socket.socket().connect(('localhost', 9854))= sock.recv(1024)data1=1c==1:=raw_input()inp=='выйти':=2;.send(inp)= sock.recv(1024)data