Advertisement
toko214

chat server

Oct 3rd, 2016
329
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.84 KB | None | 0 0
  1. import socket
  2. import threading
  3. import thread
  4. import time
  5.  
  6. HOST,PORT=('192.168.1.106',8200)
  7. listen_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  8. listen_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
  9. listen_socket.bind((HOST, PORT))
  10. listen_socket.listen(222)
  11. list_Clients=[]
  12. list_th=[]
  13.  
  14. def main():
  15.     thread.start_new_thread(Accept_Socket,())
  16.     while 1:
  17.         msg=raw_input()
  18.         print("you wrote: "+msg)
  19.         BrodCast(("Admin Sent: ",msg))
  20.  
  21.  
  22. def Accept_Socket():
  23.     while True:
  24.         client_socket,address=listen_socket.accept()
  25.         list_Clients.append((client_socket,address[0]))
  26.         print(str(address[0])+" Have Joined Us")
  27.         thread.start_new_thread(Client_Handle,(client_socket,address[0]))
  28.         BrodCast((address[0]," Have Joined Us"),client_socket)
  29.  
  30.  
  31.  
  32. def Client_Handle(client_socket,client_name):
  33.     while True:
  34.         try:
  35.             msg=client_socket.recv(1024)
  36.             print client_name+" Sent: "+msg
  37.             BrodCast((client_name, " Sent: "+msg),client_socket)
  38.         except socket.error:
  39.             print(client_name+" has left us")
  40.             BrodCast((client_name," has left us"),client_socket)
  41.             client_socket.close()
  42.             list_Clients.remove((client_socket,client_name))
  43.             break
  44.  
  45.  
  46. def BrodCast(msg,client_socket=None):
  47.  
  48.     if len(list_Clients)==0:
  49.         pass
  50.     else:
  51.         for i in xrange(0,len(list_Clients)):
  52.             try:
  53.                 if list_Clients[i][0]!=client_socket:
  54.                     list_Clients[i][0].send(msg[0]+msg[1])
  55.             except socket.error:
  56.                 list_Clients[i][0].close()
  57.                 list_Clients.remove((list_Clients[i][0],msg[0]))
  58.                 break
  59.             except Exception:
  60.                 print "idk"
  61.  
  62. if __name__ == '__main__':
  63.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement