freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

python項(xiàng)目實(shí)踐-資料下載頁(yè)

2025-07-23 02:29本頁(yè)面
  

【正文】 Session(Exception):passclass CommandHandler: def unknown(self, session, cmd): (39。Unknown mand: %s\r\n39。 % cmd) def handle(self, session, line): if not (): return parts = (39。 39。,1) cmd = parts[0] try: line = parts[1].strip() except IndexError: line = 39。39。 meth = getattr(self, 39。do_39。+cmd, None) try: meth(session, line) except TypeError: (session,cmd)class Room(CommandHandler): def __init__(self, server): = server = [] def add(self, session): (session) def remove(self, session): (session) def broadcast(self, line): for session in : (line) def do_logout(self, session, line): raise EndSessionclass LoginRoom(Room): def add(self,session): (self,session) (39。Wele to %s\r\n39。 % ) def unknown(self, session, cmd): (39。Please log in \nUse login\r\n39。) def do_login(self, session, line): name = () if not name: (39。Please enter a name\r\n39。) elif name in : (39。The name %s is taken.\r\n39。 % name) (39。Please try again.\r\n39。) else: = name ()class ChatRoom(Room): def add(self, session): ( + 39。 has entered the room.\r\n39。) [] = session (self, session) def remove(self, session): (self, session) ( + 39。 has left the room.\r\n39。) def do_say(self, session, line): ( + 39。: 39。 + line + 39。\r\n39。) def do_look(self, session, line): (39。The following are in this room:\r\n39。) for other in : ( + 39。\r\n39。) def do_who(self, session, line): (39。The following are logged in:\r\n39。) for name in : (name + 39。\r\n39。)class LogoutRoom(Room): def add(self, session): try: del [] except KeyError: passclass ChatSession(async_chat): def __init__(self, server, sock): (self,sock) = server (39。\r\n39。) = [] = None (LoginRoom(server)) def enter(self, room): try: cur = except AttributeError: pass else: (self) = room (self) def collect_ining_data(self, data): (data) def found_terminator(self): line = 39。39。.join() = [] try: (self, line) except EndSession: () def handle_close(self): (self) (LogoutRoom())class ChatServer(dispatcher): def __init__(self, port, name): (self) (, ) ((39。39。,port)) (5) = name = {} = ChatRoom(self) def handle_accept(self): conn, addr = () ChatSession(self,conn)if __name__ == 39。__main__39。: s = ChatServer(PORT, NAME) try: () except KeyboardInterrupt: print整個(gè)程序分為我一開(kāi)始說(shuō)的三個(gè)部分:提供客戶端的socket連接:ChatServer類(lèi)。存儲(chǔ)每個(gè)客戶端的連接session,處理每個(gè)連接發(fā)送的消息:ChatSession類(lèi),這個(gè)類(lèi)的作用很簡(jiǎn)單,接受數(shù)據(jù),判斷是否有終結(jié)符,如果有調(diào)用found_terminator這個(gè)方法。解析客戶端發(fā)送的數(shù)據(jù):就是剩下的room相關(guān)的類(lèi),這些類(lèi)分別用來(lái)處理客戶端發(fā)送的字符串和命令,都是繼承自CommandHandler。最終截圖:19
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1