From 57ab28c1d26340f8d1be7ae2791a55c77b92305c Mon Sep 17 00:00:00 2001 From: snsd0805 Date: Fri, 19 Jun 2020 02:12:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=AF=E9=80=B2=E8=A1=8C=E5=A4=9Aclient?= =?UTF-8?q?=E4=BB=8B=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 main.py diff --git a/main.py b/main.py new file mode 100644 index 0000000..00d2296 --- /dev/null +++ b/main.py @@ -0,0 +1,65 @@ +import socket,threading,sys + +MAX = 1024 + +class Server: + def __init__(self,ip,port): + self.ip = ip + self.port = port + def start(self): + print("Set server on {}:{}".format(self.ip,self.port)) + listensock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) + listensock.bind((self.ip,self.port)) + listensock.listen(5) + while True: + sock,sockname = listensock.accept() + print("{} has connected.".format(sockname)) + setTypeThread = threading.Thread(target = self.selectType,args=(sock,)) + setTypeThread.start() + + def selectType(self,sock): + print("SelectType() function started") + data = sock.recv(MAX).decode('utf-8') + + print(data) + if data == "MAIN": + sock.send("OK.SERVER".encode('utf-8')) + elif data == "CLIENT": + sock.send("OK.CLIENT".encode('utf-8')) + else: + sock.send("FAIL".encode('utf-8')) + + print("SelectType() function closed") + +class Client: + def __init__(self,ip,port): + self.ip = ip + self.port = port + + def start(self): + sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) + sock.connect((self.ip,self.port)) + self.setType(sock) + + def setType(self,sock): + print("Type in 'MAIN' to set a new room\nType in 'CLIENT' to join a room") + msg = input("> ") + sock.send(msg.encode('utf-8')) + receiveMsg = sock.recv(MAX).decode('utf-8') + print(receiveMsg) + +def main(): + ip = sys.argv[2] + port = sys.argv[3] + port = int(port) + print(ip,port) + if(sys.argv[1]=='server'): + server = Server(ip,port) + server.start() + elif(sys.argv[1]=='client'): + client = Client(ip,port) + client.start() + else: + print("Usage: python main.py {server,client} ip port") + +main() \ No newline at end of file