国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

基于進程內(nèi)通訊的python聊天室實現(xiàn)方法

2020-01-04 18:06:23
字體:
供稿:網(wǎng)友

這篇文章主要介紹了基于進程內(nèi)通訊的python聊天室實現(xiàn)方法,實例分析了Python聊天室的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了基于進程內(nèi)通訊的python聊天室實現(xiàn)方法。分享給大家供大家參考。具體如下:
 

  1. #!/usr/bin/env python 
  2. # Added by <ctang@redhat.com> 
  3. import sys 
  4. import os 
  5. from multiprocessing import connection 
  6. ADDR = ('', 9997) 
  7. AUTH_KEY = '12345' 
  8. class Server(object): 
  9. def __init__(self, username): 
  10. self.auth_key = AUTH_KEY 
  11. self.addr = ADDR 
  12. self.username = username 
  13. self.listener = connection.Listener(self.addr, authkey=self.auth_key) 
  14. def listen(self): 
  15. while True: 
  16. conn = self.listener.accept() 
  17. while True: 
  18. try
  19. request = conn.recv() 
  20. response = self.response(request) 
  21. conn.send(response) 
  22. except EOFError: 
  23. break 
  24. conn.close() 
  25. def reply(self): 
  26. message = raw_input("%s: " % self.username) 
  27. return message 
  28. def output_request(self, request): 
  29. sys.stdout.write('%s says: %s/n' % request) 
  30. def response(self, request): 
  31. self.output_request(request) 
  32. response = (self.username, self.reply()) 
  33. return response 
  34. class Client(object): 
  35. def __init__(self, username): 
  36. self.auth_key = AUTH_KEY 
  37. self.addr = ADDR 
  38. self.username = username 
  39. self.display_name = self.make_display_name(username) 
  40. def make_display_name(self, username): 
  41. return "%s: " % username 
  42. def connect(self): 
  43. self.conn = connection.Client(self.addr, authkey=self.auth_key) 
  44. while True: 
  45. message = raw_input(self.display_name) 
  46. self.send(message) 
  47. response = self.conn.recv() 
  48. self.output_response(response)  
  49. def send(self, message): 
  50. self.conn.send((self.username, message)) 
  51. def output_response(self, response): 
  52. sys.stdout.write('%s says: %s/n' % response) 
  53. def main(): 
  54. mode = sys.argv[1] 
  55. if mode == 'server'
  56. username = raw_input("Your name please: "
  57. server = Server(username) 
  58. server.listen() 
  59. elif mode == 'client'
  60. username = raw_input("Your name please: "
  61. client = Client(username) 
  62. client.connect() 
  63. if __name__ == '__main__'
  64. main() 

希望本文所述對大家的Python程序設(shè)計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 六安市| 拉萨市| 东光县| 武定县| 陆良县| 嘉义县| 平江县| 新巴尔虎右旗| 陆良县| 化德县| 视频| 白朗县| 石门县| 牡丹江市| 石家庄市| 曲阳县| 灵寿县| 浦北县| 宜章县| 石家庄市| 舟曲县| 淳化县| 芷江| 来凤县| 武清区| 平山县| 江永县| 石狮市| 屯昌县| 兰州市| 东方市| 塘沽区| 黔东| 临海市| 开原市| 拜泉县| 宁强县| 凭祥市| 长白| 教育| 尼玛县|