基于進程內(nèi)通訊的python聊天室實現(xiàn)方法
更新時間:2015年06月28日 15:44:43 作者:不吃皮蛋
這篇文章主要介紹了基于進程內(nèi)通訊的python聊天室實現(xiàn)方法,實例分析了Python聊天室的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
本文實例講述了基于進程內(nèi)通訊的python聊天室實現(xiàn)方法。分享給大家供大家參考。具體如下:
#!/usr/bin/env python
# Added by <ctang@redhat.com>
import sys
import os
from multiprocessing import connection
ADDR = ('', 9997)
AUTH_KEY = '12345'
class Server(object):
def __init__(self, username):
self.auth_key = AUTH_KEY
self.addr = ADDR
self.username = username
self.listener = connection.Listener(self.addr, authkey=self.auth_key)
def listen(self):
while True:
conn = self.listener.accept()
while True:
try:
request = conn.recv()
response = self.response(request)
conn.send(response)
except EOFError:
break
conn.close()
def reply(self):
message = raw_input("%s: " % self.username)
return message
def output_request(self, request):
sys.stdout.write('%s says: %s\n' % request)
def response(self, request):
self.output_request(request)
response = (self.username, self.reply())
return response
class Client(object):
def __init__(self, username):
self.auth_key = AUTH_KEY
self.addr = ADDR
self.username = username
self.display_name = self.make_display_name(username)
def make_display_name(self, username):
return "%s: " % username
def connect(self):
self.conn = connection.Client(self.addr, authkey=self.auth_key)
while True:
message = raw_input(self.display_name)
self.send(message)
response = self.conn.recv()
self.output_response(response)
def send(self, message):
self.conn.send((self.username, message))
def output_response(self, response):
sys.stdout.write('%s says: %s\n' % response)
def main():
mode = sys.argv[1]
if mode == 'server':
username = raw_input("Your name please: ")
server = Server(username)
server.listen()
elif mode == 'client':
username = raw_input("Your name please: ")
client = Client(username)
client.connect()
if __name__ == '__main__':
main()
希望本文所述對大家的Python程序設(shè)計有所幫助。
您可能感興趣的文章:
- python實現(xiàn)多人聊天室
- python編寫簡易聊天室實現(xiàn)局域網(wǎng)內(nèi)聊天功能
- Python Socket編程之多線程聊天室
- 基于python實現(xiàn)聊天室程序
- Python實現(xiàn)基于C/S架構(gòu)的聊天室功能詳解
- Python聊天室程序(基礎(chǔ)版)
- Python socket實現(xiàn)簡單聊天室
- python基于twisted框架編寫簡單聊天室
- 小小聊天室Python代碼實現(xiàn)
- python socket多線程通訊實例分析(聊天室)
- Python聊天室實例程序分享
- Python實現(xiàn)的使用telnet登陸聊天室實例
- Python socket C/S結(jié)構(gòu)的聊天室應(yīng)用實現(xiàn)
- python實現(xiàn)簡單多人聊天室
相關(guān)文章
Python中用pycurl監(jiān)控http響應(yīng)時間腳本分享
這篇文章主要介紹了Python中用pycurl監(jiān)控http響應(yīng)時間腳本分享,本文腳本實現(xiàn)監(jiān)控http相應(yīng)碼,響應(yīng)大小,建立連接時間,準(zhǔn)備傳輸時間,傳輸?shù)谝粋€字節(jié)時間,完成時間,需要的朋友可以參考下2015-02-02
python遞歸&迭代方法實現(xiàn)鏈表反轉(zhuǎn)
這篇文章主要介紹了python遞歸&迭代方法實現(xiàn)鏈表反轉(zhuǎn),文章分享一段詳細實現(xiàn)代碼,需要的小伙伴可以參考一下,希望對你的學(xué)習(xí)或工作有所幫助2022-02-02
python爬蟲爬取網(wǎng)頁表格數(shù)據(jù)
這篇文章主要為大家詳細介紹了python爬蟲爬取網(wǎng)頁表格數(shù)據(jù),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03

