python socket 聊天室

python socket 聊天室,第1张

概述python socket 聊天室

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

__author__ = '’import socketimport selectHOST = ""PORT = 9008BACKLOG = 100BUFF = 1024ADDR = (HOST,PORT)CONNECT_MAP = {}def broadcast_msg(_srv_sock,my_sock,msg):    for _file_no,_sock in CONNECT_MAP.iteritems():        if _sock != _srv_sock and _sock != my_sock:            try:                _sock.send(msg)            except socket.error:                passdef chat_server():    srv_sock = socket.socket(socket.AF_INET,socket.soCK_STREAM)    srv_sock.setsockopt(socket.soL_SOCKET,socket.so_REUSEADDR,1)    srv_sock.bind(ADDR)    srv_sock.Listen(BACKLOG)    _epoll = select.epoll()    _epoll.register(srv_sock.fileno(),select.EPolliN)    print "Start chat server on port %d" % PORT    while True:        events = _epoll.poll(timeout=0.5)        for _file_no,event in events:            if _file_no == srv_sock.fileno():                _cli_sock,_addr = srv_sock.accept()                _cli_sock.setblocking(0)                print "ClIEnt (%s,%s) connected" % _addr                broadcast_msg(srv_sock,_cli_sock,"[%s:%s] entered root\n\r" % _addr)                _epoll.register(_cli_sock.fileno(),select.EPolliN)                CONNECT_MAP[_cli_sock.fileno()] = _cli_sock            elif event & select.EPolliN:                try:                    _sock = CONNECT_MAP[_file_no]                    _data = _sock.recv(BUFF)                    if _data:                        _msg = "<" + str(_sock.getpeername()) + ">" + _data + '\n\r'                        broadcast_msg(srv_sock,_sock,_msg)                except:                    CONNECT_MAP[_file_no].close()                    CONNECT_MAP.pop(_file_no)                    _epoll.unregister(_file_no)            elif event & select.EPolLHUP:                CONNECT_MAP[_file_no].close()                CONNECT_MAP.pop(_file_no)                _epoll.unregister(_file_no)if __name__ == "__main__":    chat_server()

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的python socket 聊天室全部内容,希望文章能够帮你解决python socket 聊天室所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1198814.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存