-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.py
More file actions
54 lines (46 loc) · 1.75 KB
/
Copy pathserver.py
File metadata and controls
54 lines (46 loc) · 1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#Basic socket server with python by Burak "paradass" Görez
import json
import socket
import datetime
import threading
class Server:
def __init__(self,host:str,port:int):
self.HOST = host
self.PORT = port
self.client_order = 0
self.commands = {
"konum":"Gizlilik ilkemiz var .d",
"selam":"Sana da selam!",
"kimsin":"Ben server :)",
"yemek":"Ben yemiyorum"
}
def reply_request(self,request:str):
request = request.lower()
if request == "saat": response = str(datetime.datetime.now())
else: response = self.commands.get(request,"Bilinmeyen komut!")
return json.dumps({"response":response})
def serv(self,conn:socket.socket,adr):
print(f"{datetime.datetime.now()} New connection from {adr}\n")
order = self.client_order
self.client_order += 1
while True:
try:
request:str = conn.recv(1024).decode()
response = self.reply_request(request)
conn.sendall(response.encode())
print(f"{order} {datetime.datetime.now()} {adr}: {request}\nResponse: {response}\n")
except Exception as e:
print(f"{order} {datetime.datetime.now()} {adr} Connection closed: {e}\n")
conn.close()
break
def listen(self):
server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server_socket.bind((self.HOST,self.PORT))
server_socket.listen()
print("Listening..\n")
while True:
conn,adr = server_socket.accept()
thread = threading.Thread(target=self.serv,args=(conn,adr,))
thread.start()
server = Server("",12345)
server.listen()