ГЛАВНАЯ      ДОКУМЕНТАЦИЯ      СТАТЬИ      ПРОГРАММЫ      ССЫЛКИ      ФОРУМ      ДРУГОЕ   

Клиент и сервер времени

        Сокеты позволяют реализовать взаимодействие процессов, выполняющихся на одной машине или на нескольких машинах в сети (межмашинное взаимодействие). При использовании сокетов необходимо решить несколько основных задач:
-- Определить протокол взаимодействия как набор пакетов, которыми могут обмениваться процессы и которые должны идентифицироваться процессами.
-- Разработать программу сервер.
-- Разработать программу клиент.
        С целью иллюстрации возможностей реализации межмашинного взаимодействия в Python рассмотрим пример простейшего сервера - сервера времени. При разработке такого сервера единственным видом данных, которыми будут обмениваться клиент и сервер будет текстовая строка с текущим временем, что позволяет отказаться от идентификации пакета и, таким образом, использовать наиболее простой интерфейс. Ниже представлен код сервера и код клиента.

Программа-сервер:
-- Создает сокет и устанавливает для него порт 8888 (выбран как один из свободных).
-- Устанавливает максимальное количество одновременных соединений 5.
-- Выполняет цикл опроса подключений клиентов с отправкой точного времени и последующим отключением.

#!/usr/bin/python

from socket import *
import time

s = socket(AF_INET, SOCK_STREAM)
s.bind(("",8888))
s.listen(5)
while 1:
	client,addr = s.accept()
	print "Connection from ",addr
	client.send(time.ctime(time.time()))
	client.close
Программа-клиент:
-- Создает сокет и присоединяется к порту 8888 указанного хоста (в данном случае - локального).
-- Читает строку (не более 1024 байт).
-- Закрывает соединение и выводит полученное время на стандартный вывод.
#!/usr/bin/python

from socket import *

s = socket(AF_INET, SOCK_STREAM)
s.connect(("localhost",8888))
tm = s.recv(1024)
s.close()
print "The time is ",tm
        При выполнении программ примера первым должен быть запущен сервер (удобно в отдельном терминале). Выполняем, проверяем результаты. На этом все.
файлы:
        server.py
        client.py

Источники:
        cetus.com.ua

ПОМОЩЬ САЙТУ :
sms.Є®ЇЁ«Є  *PythonUA*
Для чего Вы используете Python?
Admin( 46 )
Web( 61 )
GUI( 37 )
Embedding ( 16 )
Другое( 34 )
Какими продуктами Вы пользовались?
Zope( 15 )
Plone( 1 )
TG( 7 )
Django( 15 )
Twisted( 5 )
Другими( 10 )
ДРУЗЬЯ:
LUG.DN.UA
D-FENS.ORG.UA
SLAV0NIC.XSS.RU
CETUS.COM.UA
ENTDEV.ORG
[Python Powered]
Rambler's Top100
Copyright © 2006 python.com.ua