Changeset 77 for trigger/CommSocket.py
- Timestamp:
- 06/30/09 11:09:39 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trigger/CommSocket.py
r52 r77 20 20 import time 21 21 BUFSIZ = 1024 22 23 22 class Sender(threading.Thread): 23 """ Sends the messages """ 24 outputs = [] 25 oldmessage='' 26 27 def run(self): 28 running = 1 29 while running: 30 time.sleep(0.001) 31 if(self.oldmessage!=GlobalVariables.ServerMessage): 32 self.oldmessage=GlobalVariables.ServerMessage 33 34 for o in self.outputs: 35 # o.send(msg) 36 #print "sending (glob): ",GlobalVariables.ServerMessage,"\n" 37 send(o,GlobalVariables.ServerMessage ) 38 if(GlobalVariables.UserInput[1:]=='exit' or GlobalVariables.UserInput[1:]=='EXIT'): 39 running=0 40 41 42 43 24 44 class CommServer(threading.Thread): 25 45 """ Simple server using select """ 26 46 oldmessage='' 47 sender=Sender() 27 48 def __init__(self, port=3490, backlog=5): 28 49 self.clients = 0 … … 36 57 print 'SERVER: Listening to port',port,'...' 37 58 self.server.listen(backlog) 59 self.sender.start() 38 60 # Trap keyboard interrupts 39 61 #signal.signal(signal.SIGINT, self.sighandler) 40 62 threading.Thread.__init__(self) 41 63 #def sighandler(self, signum, frame): 42 # if(GlobalVariables.UserInput =='exit' or GlobalVariables.UserInput=='EXIT'):64 # if(GlobalVariables.UserInput[1:]=='exit' or GlobalVariables.UserInput[1:]=='EXIT'): 43 65 # running=0 44 66 # for o in self.outputs: … … 71 93 72 94 while running: 73 time.sleep(0.01) 74 if(GlobalVariables.UserInput=='exit' or GlobalVariables.UserInput=='EXIT'): 95 time.sleep(0.001) 96 #if(self.oldmessage!=GlobalVariables.ServerMessage): 97 # self.oldmessage=GlobalVariables.ServerMessage 98 # for o in self.outputs: 99 # # o.send(msg) 100 # #print "sending (glob): ",GlobalVariables.ServerMessage,"\n" 101 # send(o,GlobalVariables.ServerMessage ) 102 if(GlobalVariables.UserInput[1:]=='exit' or GlobalVariables.UserInput[1:]=='EXIT'): 75 103 running=0 76 104 … … 87 115 # handle the server socket 88 116 client, address = self.server.accept() 89 print 'SERVER: got connection %d from %s' % (client.fileno(), address) 117 #print 'SERVER: got connection %d from %s' % (client.fileno(), address) 118 GlobalVariables.ServerMessage = 'SERVER: got connection %d from %s' %( client.fileno(), address)+"\n" 90 119 # Read the login name 91 cname = receive(client).split('NAME: ')[1] 92 120 cname="TESTUSER" 121 #cname = receive(client).split('NAME: ')[1] 122 #print cname 93 123 # Compute client name and send back 94 124 self.clients += 1 95 send(client, 'FROM SERVER: CLIENT: ' + str(address[0])) 125 #send(client, 'FROM SERVER: CLIENT: ' + str(address[0])) 126 #send(client,"test"); 127 #send(client,"test2"); 128 96 129 inputs.append(client) 97 130 … … 99 132 # Send joining information to other clients 100 133 msg = '\nFROM SERVER: (Connected: New client (%d) from %s)' % (self.clients, self.getname(client)) 101 for o in self.outputs: 102 # o.send(msg) 103 send(o, msg) 104 134 GlobalVariables.ServerMessage=msg; 135 time.sleep(0.001) 136 #print "appending ", client 105 137 self.outputs.append(client) 106 138 self.sender.outputs=self.outputs 107 139 #elif s == sys.stdin: 108 140 # handle standard input … … 119 151 # handle all other sockets 120 152 try: 121 # data = s.recv(BUFSIZ) 122 data = receive(s) 153 data = s.recv(BUFSIZ) 154 155 #data = receive(s) 156 #print data 123 157 if data: 158 GlobalVariables.counter += 1 159 GlobalVariables.counter %= 10 160 data = str(GlobalVariables.counter)+data 124 161 # Send as new client's message... 125 162 msg = 'SERVER: You sent: >> ' + data 163 msg+="\n" 126 164 GlobalVariables.UserInput=data 127 print "SERVER: recv data: "+data 128 for o in self.outputs: 129 send(o, msg) 130 if(GlobalVariables.UserInput=='exit' or GlobalVariables.UserInput=='EXIT'): 165 #print "SERVER: recv data: "+data 166 #print "msg is: ",msg 167 168 #for o in self.outputs: 169 #msg="TSTSTS" 170 # print "sending ",msg," to ",o 171 172 # send(o, msg) 173 if(GlobalVariables.UserInput[1:]=='exit' or GlobalVariables.UserInput[1:]=='EXIT'): 131 174 running=0 132 175 # Send data to all except ourselves 133 176 134 177 else: 135 print'SERVER: %d hung up' % s.fileno()178 GlobalVariables.ServerMessage ='SERVER: %d hung up' % s.fileno() 136 179 self.clients -= 1 137 180 s.close() 138 181 inputs.remove(s) 139 182 self.outputs.remove(s) 140 183 self.sender.outputs=self.outputs 141 184 # Send client leaving information to others 142 185 msg = 'SERVER: \n(Hung up: Client from %s)' % self.getname(s) 143 for o in self.outputs:186 #for o in self.outputs: 144 187 # o.send(msg) 145 send(o, msg)188 # send(o, msg) 146 189 147 190 except socket.error, e: … … 151 194 152 195 153 print 'SERVER: Shutting down server...' 196 GlobalVariables.ServerMessage ='SERVER: Shutting down server...' 197 154 198 # Close existing client sockets 155 199 for o in self.outputs:
Note:
See TracChangeset
for help on using the changeset viewer.