# L-28 MCS 275 Wed 15 Mar 2017 : mc4pi2.py
"""
Implements server for Monte Carlo method for pi,
with two clients.  Server dispatches the seeds
and collects results.
"""
from socket import socket as Socket
from socket import AF_INET, SOCK_STREAM

HOSTNAME = ''       # blank for any address
PORTNUMBER = 11267  # number for the port
BUFFERSIZE = 80     # size of the buffer

SERVER_ADDRESS = (HOSTNAME, PORTNUMBER)
SERVER = Socket(AF_INET, SOCK_STREAM)
SERVER.bind(SERVER_ADDRESS)
SERVER.listen(2)

print('server waits for connections...')

FIRST, FIRST_ADDRESS = SERVER.accept()
SECOND, SECOND_ADDRESS = SERVER.accept()

FIRST.send('1'.encode())
SECOND.send('2'.encode())

print('server waits for results...')

NBR1 = FIRST.recv(BUFFERSIZE).decode()
NBR2 = SECOND.recv(BUFFERSIZE).decode()

RESULT = 2*(float(NBR1)+float(NBR2))
print('approximation for pi =', RESULT)

SERVER.close()
