22
33import socket
44import ConfigParser
5- import json
65from RpiCluster .MainLogger import add_file_logger , logger
7- from RpiCluster .DataPackager import get_message , create_payload
8- from RpiCluster .MachineInfo import get_base_machine_info
6+ from RpiCluster .RpiClusterClient import RpiClusterClient
97
108config = ConfigParser .ConfigParser ()
119config .read ('rpicluster.cfg' )
1816
1917socket = socket .socket (socket .AF_INET , socket .SOCK_STREAM )
2018socket .bind ((socket_bind_ip , socket_port ))
21- socket .listen (1 )
2219
23- (clientsocket , address ) = socket .accept ()
24- logger .info ("Got client at {address}" .format (address = address ))
20+ socket .listen (10 ) #listen to 10 connects
21+ while True :
22+ (clientsocket , address ) = socket .accept ()
23+ logger .info ("Got client at {address}" .format (address = address ))
2524
26- message = True
27- while message :
28- message = get_message (clientsocket )
29- if message :
30- if message ['type' ] == 'message' :
31- logger .info ("Received message: " + message ['payload' ])
32- elif message ['type' ] == 'computer_details' :
33- logger .info ("Computer specifications: " + json .dumps (message ['payload' ]))
34- elif message ['type' ] == 'info' :
35- logger .info ("Slave wants to know my info about " + message ['payload' ])
36- if message ['payload' ] == 'computer_details' :
37- clientsocket .send (create_payload (get_base_machine_info (), "master_info" ))
38- else :
39- clientsocket .send (create_payload ("unknown" , "bad_message" ))
40-
41- else :
42- logger .info ("Client disconnected" )
25+ rpiClient = RpiClusterClient (clientsocket , address )
26+ rpiClient .start ()
0 commit comments