Esempio n. 1
0
def askForPromise(i):
    global ports, linkSuc, socks
    global promiseCond, promiseCount
    global procNo
    if linkSuc[i - 1] == False:
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        server_address = ("localhost", ports[i])
        try:
            sock.connect(server_address)
        except Exceptiont:
            print("Connection failed for server " + str(i))
            return False

        # Send procNo
        ini = paxos_pb2.Init()
        ini.src = procNo
        helpSend(sock, ini)

        socks[i] = sock
        linkSuc[i - 1] = True
        threading.Thread(target=recvAndSet, args=(
            sock,
            i,
        )).start()

    sendPrepare(socks[i], i)
Esempio n. 2
0
def lisAndAcc(sock):
    global socks, ports
    while True:
        soc, addr = sock.accept()
        print("Accepted link")
        le = safeRec(soc, 2)
        le = unpack(">H", le)[0]
        ini = safeRec(soc, le)
        sr = paxos_pb2.Init()
        sr.ParseFromString(ini)
        srcc = sr.src
        socks[srcc] = soc
        linkSuc[srcc - 1] = True
        threading.Thread(target=recvAndSet, args=(
            soc,
            srcc,
        )).start()