Skip to content

Instantly share code, notes, and snippets.

@eagleEggs
Created December 23, 2018 19:58
Show Gist options
  • Save eagleEggs/c08f94ec3c2857564c26d4ea90633514 to your computer and use it in GitHub Desktop.
Save eagleEggs/c08f94ec3c2857564c26d4ea90633514 to your computer and use it in GitHub Desktop.
Networking base class
# ######################################################################### ###
# ########### NETWORK CONTROLLER ########### ###
# ######################################################################### ###
class Networking(object):
def __init__(self, server_ip, server_port, server_password,
server_data, object_pass):
self.server_ip = server_ip
self.server_password = server_password
self.server_port = server_port
self.sock_obj = socket(AF_INET, SOCK_STREAM)
#self.sock_obj.settimeout(30) no timeout
self.server_send_data = server_data
self.object_pass = object_pass
# ########################
# ## NETWORK LISTEN ##
# ########################
def open_connection_listener(self):
self.sock_obj.bind((self.server_ip, self.server_port))
self.sock_obj.listen(99)
while True:
print("Starting Server")
connection, address = self.sock_obj.accept()
print("Accepted Connection")
thread.start_new_thread(
self.open_connection_thread_listener,
(connection, address))
def open_connection_thread_listener(self, connection, address):
while True:
received_data = connection.recv(1024)
print("Data: {}, Address: {}").format(received_data, address)
if received_data == "task":
Scheduler("do", self.object_pass)
else:
pass
# ########################
# ## NETWORK SEND ##
# ########################
def open_connection_sender(self):
thread.start_new_thread(
self.open_connection_thread_sender,
(self.server_ip, self.server_port, self.server_send_data))
def open_connection_thread_sender(self, server_ip, server_port,
server_send_data):
self.sock_obj.connect((self.server_ip, self.server_port))
self.sock_obj.send(str.encode(self.server_send_data))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment