Python 实现半双工聊天器,python半双工聊天器,#coding=utf-


#coding=utf-8               import socket                   #加载socket模块from time import ctime          #加载time模块ctime类HOST = ''                       #设置主机IP,为空则表示本机上所有的网卡ip。PORT = 3300                     #设置端口号BUSIZ = 1024                    #设置数据缓冲区,1KBADDR = (HOST, PORT)             def closeTCnt():                #    TCntSock.close()    print "Session closing.."TSerSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)    #创建一个TCP sokcetTSerSock.bind(ADDR)             #绑定TCP socket的地址和端口TSerSock.listen(1)              #只接收一个请求,如后续后其他请求则会被拒绝try:    while True:        print 'Waitting for connection...'        (TCntSock, cntAddr) = TSerSock.accept()     #TSerSock.accept 返回一个(conn, addr)的元组。 conn是一个socket对象,而addr是客户端IP地址和端口        print '...connection from:', cntAddr        try:             while True:                rData = TCntSock.recv(BUSIZ)        #接收客户端信息                if not rData:                    continue                elif rData == 'quit':               #当收到‘quit’后关闭TCntSock并等待下一次链接                    break                else:                    print 'From [%s] %s \n  %s' % (cntAddr[0], ctime(), rData)                  while True:                    sData = raw_input('I:>  ')                          if not sData:                        continue                    else:                           TCntSock.send('From [%s] %s \n  %s' %                            (cntAddr[0], ctime(), sData))       #发送服务器信息。                        break        except  socket.error ,detail:           #发生错误是关闭TCntSock,输出错误信息并等待下一次链接            print detail        closeTCnt()finally:    TSerSock.close()

评论关闭