Пример #1
0
def main():
	global is_server
	#available_ips = network.getAvailableSubnet()
	if len(sys.argv)>=2:
		arg = sys.argv[1].lower()
		if arg=="client":
			is_server = False
	if is_server:
		serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
		host = socket.gethostname()
		serversocket.bind((network.ip("wlan0"), 1055))
		serversocket.listen(10)
		print("In Server Mode")
		while True:
			clientsocket, addr = serversocket.accept()
			print("Got a connection from {}".format(addr))
			with open("receive.txt", "wb") as f:
				while True:
					data = clientsocket.recv(1024)
					if not data:
						break
					f.write(data)
			clientsocket.close()
			print("Received Data")
	else:
		print("In client mode")
		available_ips = network.getAvailableSubnet()
		print(available_ips)
		s = socket.socket()
		s.connect((available_ips[0], 1055))
		with open("Hello.txt", "rb") as f:
			data = f.read(1024)
			s.send(data)
		s.close()
		print("Done Uploading")
Пример #2
0
def start_server():
	global file_list
	try:
		serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
		serversocket.bind((network.ip(network.iface), 1055))
		serversocket.listen(100)
		print("Binded Server")
		while True:
			try:
				clientsocket, addr = serversocket.accept()
				print("Connection from {}".format(addr))
				d = clientsocket.recv(1024).decode("UTF-8")
				passwd = ""
				#print("D: {}".format(d))
				for ln in d.split(";"):
					#print("CMD: {}".format(ln))
					if "*" in ln:
						for i in file_list:
							clientsocket.send("File:{};".format(i).encode('UTF-8'))
						clientsocket.send("&".encode("UTF-8"))
					if "&" in ln:
						print("Closed")
						clientsocket.close()
					elif "^" in ln:
						file_name = ln[1:]
						print("Sizing: {}".format(file_name))
						i = file_list.index(file_name)
						file_path = file_path_list[i]
						f_size = os.path.getsize(file_path)
						clientsocket.send("{}".format(f_size).encode("UTF-8"))
					elif "$" in ln:
						#print("Download")
						file_name = ln[1:]
						i = file_list.index(file_name)
						file_path = file_path_list[i]
						if passwd==server.server_password:
							print("Uploading: {}".format(file_path))
							with open(file_path, "rb") as f:
								#print("Reading")
								while True:
									data = f.read(1048576)
									#print("Reading")
									if not data:
										break
									clientsocket.send(data)
							clientsocket.close()
							print("Sent")
						else:
							print("Wrong password")
							clientsocket.close()
					elif "'" in ln:
						#print("Password Access")
						password = ln[1:]
						passwd = password
			except Exception as e:
				print(e)
	except Exception:
		print("Server already running on host")
Пример #3
0
 def __init__(self):
     self.ip = network.ip()
     self.done = False
     self.printer = Adafruit_Thermal("/dev/serial0", 19200, timeout=5)
     self.switch = Button(7)
     self.led = LED(18)
     self.button = Button(23)
     wheelpins = [26, 19, 13, 6, 5, 11, 9, 10]
     self.wheelbuttons = [Button(n) for n in wheelpins]
Пример #4
0
def getAvailableSubnet():
	ip_addrs = network.ipRange(network.netmask(iface), network.ip(iface))
	available = []
	for i in range(len(ip_addrs)):
		try:
			s = socket.create_connection((ip_addrs[i], 1055), 0.1)
			available.append(ip_addrs[i])
			s.close()
		except Exception as e:
			pass
	return available
Пример #5
0
def main():
	if len(sys.argv)>=2 and sys.argv[1].lower()=="server":
		s = threading.Thread(target=server.start_server)
		s.setDaemon(True)
		s.start()
		while True:
			pass
	else:
		gui.build()
		gui.guiApp.setLabel(network.ip(network.iface))
		server.s_thread = threading.Thread(target=server.start_server)
		server.s_thread.setDaemon(True)
		server.s_thread.start()
		gui.launch()
Пример #6
0
def get_file_list():
	files = []
	print(available_ips)
	#s = socket.socket()
	for ip in available_ips:
		print(ip)
		if ip==network.ip(network.iface):
			continue
		s = socket.socket()
		s.connect((ip, 1055))
		print("Connecting for files")
		s.send("*;".encode("UTF-8"))
		loop = True
		while True:
			d = s.recv(1024).decode("UTF-8")
			#print(d)
			ds = d.split(";")
			for ln in ds:
				#print(ln)
				if "&" in ln:
					s.send("&".encode("UTF-8"))
					s.close()
					loop = False
				lncmd = ln[0:4].lower()
				lnarg = ln[5:]
				if lncmd=="file":
					files.append("{}, {}".format(ip, lnarg))
			if loop==False:
				break
			"""dcmd = d[0:4].lower()
			darg = d[5:-1].lower()
			if dcmd=="file":
				files.append(darg)
			if "&" in d:
				#print("Closing")
				s.send("&".encode("UTF-8"))
				s.close()
				break
			elif d=="R":
				print("Retreive")
			print("CMD:{} ARG:{}".format(dcmd, darg))"""
		s.close()
	return files
Пример #7
0
def main():
	if len(sys.argv)>=2 and sys.argv[1].lower()=="server":
		s = threading.Thread(target=server.start_server)
		s.setDaemon(True)
		s.start()
		while True:
			pass
	else:
		#g = threading.Thread(target=gui.launch)
		#g.setDaemon(True)
		#g.start()
		gui.build()
		gui.guiApp.setLabel(network.ip(network.iface))
		#print(type(network.ip("wlan0")))
		#client.update_available_ips()
		#files = client.get_file_list()
		#gui.guiApp.setFiles(files)
		server.s_thread = threading.Thread(target=server.start_server)
		server.s_thread.setDaemon(True)
		server.s_thread.start()
		gui.launch()
Пример #8
0
 def __init__(self):
     self.switch = Switch(True)
     self.ip = network.ip()
     self.generators = list(allgenerators)
     self.i = 1
Пример #9
0
	def setLabelIP(self):
		self.setLabel(network.ip(network.iface))