import rpc
import time
from context import lab_logging

lab_logging.setup()

cl = rpc.Client()
cl.run()

base_list = rpc.DBList({'foo'})
result_list = cl.append('bar', base_list)


print("Result: {}".format(result_list.value))

cl.stop()
示例#2
0
文件: doit.py 项目: sman1011/vs2lab
- peers compete for some critical section
- peers run in separate processes
- multiprocessing should work on unix and windows
- terminates a random process to simulate a crash fault
"""

import sys
import time
import logging
import random
import multiprocessing as mp

from process import Process
from context import lab_channel, lab_logging

lab_logging.setup(stream_level=logging.INFO, file_level=logging.DEBUG)

logger = logging.getLogger("vs2lab.lab5.mutex.doit")


def create_and_run(num_bits, proc_class, enter_bar, run_bar):
    """
    Create and run a peer
    :param num_bits: address range of the channel
    :param node_class: class of peer
    :param enter_bar: barrier syncing channel population 
    :param run_bar: barrier syncing bootstrap
    """
    chan = lab_channel.Channel(n_bits=num_bits)
    proc = proc_class(chan)
    enter_bar.wait()  # wait for all peers to join the channel
示例#3
0
import os
import rpc
import logging
from context import lab_logging
import time

os.system('cls')
lab_logging.setup(stream_level=logging.INFO)


def callback():
    str_res = ""
    print('Call-back Function')
    print("       3. Message received from server!")
    str_res = str_res + " from callback-function "
    return str_res


def main_fkt():
    print('The main program continues to run in foreground.')
    for i in range(15):
        time.sleep(1)
        print("-" + str(i) + "-")


cl = rpc.Client()
cl.run()
base_list = rpc.DBList({'foo'})
result_list = cl.append('bar', base_list)
print("Result: {}".format(result_list))
cl.stop()
示例#4
0
import logging
import socket

import constCS
from context import lab_logging

lab_logging.setup(
    stream_level=logging.INFO)  # init loging channels for the lab


class Server:
    _logger = logging.getLogger("vs2lab.lab1.clientserver.Server")
    _serving = True

    def __init__(self):
        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.sock.bind((constCS.HOST, constCS.PORT))
        self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,
                             1)  # prevents errors due to "addresses in use"
        self.sock.settimeout(3)  # time out in order not to block forever
        self._logger.info("Server bound to socket " + str(self.sock))

    def serve(self):
        self.sock.listen(1)
        while self._serving:  # as long as _serving (checked after connections or socket timeouts)
            try:
                (connection, address) = self.sock.accept(
                )  # returns new socket and address of client
                while True:  # forever
                    data = connection.recv(1024)  # receive data from client
                    if not data:
示例#5
0
文件: runsrv.py 项目: sman1011/vs2lab
import logging

import channel
from context import lab_channel, lab_logging

lab_logging.setup(stream_level=logging.DEBUG)
logger = logging.getLogger('vs2lab.lab2.channel.runsrv')

chan = lab_channel.Channel()
chan.channel.flushall()
logger.info('Flushed all redis keys.')

server = channel.Server()
server.run()
示例#6
0
import logging
import socket
import json

import constCS
from context import lab_logging

lab_logging.setup()  # init loging channels for the lab


class Server:
    _logger = logging.getLogger("vs2lab.lab1.clientserver.Server")
    _serving = True
    dict1 = {'Luke': "12345672", "Sky": "124576437", 'Walker': "67", 'Peter': "1267"}

    def __init__(self):
        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.sock.bind((constCS.HOST, constCS.PORT))
        self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)  # prevents errors due to "addresses in use"
        self.sock.settimeout(3)  # time out in order not to block forever
        self._logger.info("Server bound to socket " + str(self.sock))

    def dictionary(self, name):

        dictData = self.dict1[name]
        return str(dictData)

    def dictionaryALL(self):

        return json.dumps(self.dict1)