Page 91 - 6734
P. 91
def write(soc, obj):
"Відсилає об'єкт obj через сокет soc"
f = soc.makefile('wb') # створити файл,
асоційований з сокетом
pickle.dump(obj, f, pickle.HIGHEST_PROTOCOL) #
серіалізувати obj в файлі
f.close() # закрити файл
def read(soc):
"Повертає об'єкт, отриманий з сокета soc"
f = soc.makefile('rb') # створити файл,
асоційований з сокетом
obj = pickle.load(f) # десеріалізувати obj з
файлу
f.close() # закрити файл
return obj
SocketServer – каркас для мережевих серверів
Високорівневий модуль SocketServer спрощує задачі
створення мережевих серверів [5, 19]. Для створення власного
обробника мережевих запитів потрібно успадкувати клас
BaseRequestHandler і перевизначити метод handle. У прикладі
на основі SocketServer створено багатопотоковий сервер з
адресою ‘127.0.0.1’ і портом 50007. Сервер отримує дані через
мережу від клієнтів та відсилає їх назад. Для тестування
багатопотоковості запустіть цей сервер python serverT.py і
кілька клієнтів python client.py. У диспетчері завдань Windows
7 можна побачити, як змінюється кількість потоків процесу сервера.
import SocketServer, time
from socketFileIO import write, read # якщо потрібно
class
MyClientHandler(SocketServer.BaseRequestHandler): #
90