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
   86   87   88   89   90   91   92   93   94   95   96