示例#1
0
		try:
			sock.settimeout(.5) # times out after .5s
			sock.connect((sys.argv[1], int(sys.argv[2])))
		except IndexError:
			print >> sys.stderr, 'usage: client.py IP PORT'
			sock.close()
			sys.exit(1)
		except:
			sock.close()
			time.sleep(.5)
			continue

		print >> sys.stderr, 'Receiving match...'
		try:
			sock.setblocking(1) # blocks until receives information
			match = pickle.loads(sockutils.recvall(sock))
			print >> sys.stderr, match
			
			p = subprocess.Popen(shlex.split('python test.py %s' % ' '.join(map(str, match['p1'] + match['p2']))),
			                     cwd='../java_starter_package/testing/',
			                     stdout=subprocess.PIPE)
			
			out = ' '.join([ x.strip() for x in p.stdout.readlines() ])
			print >> sys.stderr, out
			
			if 'ERROR' in out:
				msg = {'error': out}
			else:
				msg = simplejson.loads(out)
				
			sock.sendall(pickle.dumps(msg, 2))