Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.69 KB | None | 0 0
  1. #server
  2. import random
  3. import socket
  4. randnum = random.randint(0,30)
  5.  
  6. clientList = []
  7. HOST = '127.0.0.1'
  8. PORT = 458
  9. ADDR = (HOST, PORT)
  10. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  11. s.bind(ADDR)
  12. s.listen(3)
  13. ls = []
  14. condition = Condition()
  15. class ProducerThread(Thread):
  16.  
  17. def __init__(self, client, username):
  18. self.client = client
  19. self.username = username
  20. Thread.__init__(self)
  21.  
  22. def run(self):
  23. global queue
  24. while True:
  25. try:
  26.  
  27. mess = self.client.recv(1024)
  28. condition.acquire()
  29. m = mess.decode()
  30. if (m == randnum):
  31.  
  32. self.client.send("bingo")
  33. self.client.close()
  34. print ("closed")
  35. condition.notify()
  36. condition.release()
  37. except socket.error as e:
  38. print("Couldnt connect with the socket-server: %s\n terminating program" % e)
  39.  
  40. print("client left")
  41. # remove him from the client list, and close his socket
  42. break
  43.  
  44.  
  45.  
  46. while True:
  47. print("waiting for connection")
  48. conn, addr = s.accept()
  49. print(addr)
  50. conn.send(("your address is " + str(addr)).encode())
  51. username = conn.recv(100000)
  52. username.decode()
  53. print username
  54. clientList.append((conn, username))
  55. t = ProducerThread(conn, username)
  56. t.start()
  57. #client
  58. import socket
  59. from threading import Thread, Condition
  60.  
  61. HOST = '127.0.0.1'
  62. PORT = 458
  63. ADDR = (HOST, PORT)
  64.  
  65. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  66. s.connect(ADDR)
  67. condition = Condition()
  68. msg = s.recv(100000)
  69. msg.decode()
  70. print(msg)
  71. # send username
  72. print("Enter Username")
  73. username = raw_input()
  74. s.send(username.encode())
  75.  
  76.  
  77. class Recive(Thread):
  78. def __init__(self):
  79. Thread.__init__(self)
  80.  
  81. def run(self):
  82. # global isConnected
  83. while True:
  84. try:
  85. mess = s.recv(1024)
  86. mess.decode()
  87. if(mess == "bingo"):
  88. {
  89. s.close()
  90. }
  91. print (mess)
  92. except socket.error as e:
  93. print("Couldnt connect with the socket-server: %s\n terminating program" % e)
  94. break
  95.  
  96. class SendM(Thread):
  97. def __init__(self):
  98. Thread.__init__(self)
  99. def run(self):
  100. while True:
  101. m = raw_input()
  102. try:
  103. s.send(m.encode())
  104. except socket.error as e:
  105. s.close()
  106. print("***Couldnt connect with the socket-server: %s\n terminating program" % e)
  107. break
  108. t = SendM()
  109. t.start()
  110. t2 = Recive()
  111. t2.start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement