国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 金湖县| 客服| 长岛县| 阿勒泰市| 城口县| 华阴市| 什邡市| 通州市| 奉贤区| 隆化县| 都昌县| 鄄城县| 武穴市| 当雄县| 元阳县| 岑溪市| 濮阳市| 凯里市| 龙岩市| 深泽县| 饶河县| 台北市| 安塞县| 盖州市| 台中县| 无为县| 尉氏县| 安宁市| 安康市| 津南区| 监利县| 和顺县| 怀仁县| 鞍山市| 托克逊县| 潜山县| 大连市| 昌江| 崇阳县| 津市市| 陇川县|