-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathserver.py
67 lines (50 loc) · 1.66 KB
/
server.py
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
55
56
57
58
59
60
61
62
63
64
65
66
from socket import *
import threading
import time
import sys
class Server():
def listenToClient(self, client, addr, clients_list):
while True:
message = client.recv(1024)
if message == "exit":
print (addr, " is closed")
client.close()
exit(0)
else:
print (addr, " : ", message.decode("utf-8"),time.strftime("%H:%M:%S"))
for clients in clients_list:
if clients != client:
clients.send(message)
def __init__(self, serverPort):
try:
serverSocket = socket(AF_INET, SOCK_STREAM)
except:
print ("Socket cannot be created!!!")
exit(1)
print ("Socket is created...")
try:
serverSocket.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
except:
print ("Socket cannot be used!!!")
exit(1)
print ("Socket is being used...")
try:
serverSocket.bind(('', serverPort))
except:
print ("Binding cannot de done!!!")
exit(1)
print ("Binding is done...")
try:
serverSocket.listen(45)
except:
print ("Server cannot listen!!!")
exit(1)
print ("The server is ready to receive")
clients_list =[]
while True:
connectionSocket, addr = serverSocket.accept()
clients_list.append(connectionSocket)
threading.Thread(target=self.listenToClient, args=(connectionSocket, addr, clients_list)).start()
if __name__ == "__main__":
serverPort = 12000
Server(serverPort)