示例#1
0
def inputText(factory):
    '''inputText'''
    protocolDebug(u":::: " + factory.user + "\r\n")
    protocolDebug(u":::: " + factory.password + "\r\n")
    if 1 :
        text = stdin.readline()
        factory.buildProtocol().transport.write(text)
示例#2
0
    def dataReceived(self, data):
        '''数据接收'''
        protocolDebug("client_twisted.dataReceived 1 received: %s" %(data))
        
        #如果连接标志为0,进行登陆校验
        if self.inused == 0 : 
            self.loginCheck(data)
            return
        
        if self.getFriendsFlag == 0:
            self.getFriends(data)
            return
        
        if self.inused == 1 :
            if self.messageCheck(data) != 0:
                try:
                    #显示在ui上的最终值
                    receiveData = self.sourceAddress + " said: " + self.messageContents

                    protocolDebug(u"client_twisted.dataReceived 2 receiveData")
                    self.factory.runControlFunction(self.factory.handleReceMessage,
                                                    None,
                                                    self.sourceAddress,
                                                    self.destinationAddress,
                                                    receiveData)
                    #pylint: disable=W0702 
                except:
                    pass 
示例#3
0
def handleAddUsers(connectuser, self):
    '''handleAddUsers'''
    protocolDebug("client_twisted handleAddUsers")
    try:     
        frame.addUsers(connectuser[0], self)
        #pylint: disable=W0702
    except:
        pass
示例#4
0
def handleConnectionFailed(connector, reason):
    protocolDebug(u'client_twisted Connection handleConnectionFailed:', str(connector), reason.getErrorMessage())
    try:
        #pylint: disable=E1101
        reactor.stop()
        #pylint: disable=W0702
    except:
        pass            
示例#5
0
    def connectionMade(self):
        '''连接时调用,发送用户和密码到服务器'''
        self.inused = 0 #连接服务器标志,用户和密码校验通过
        self.getFriendsFlag = 0 #获取用户列表标志
#        msg=userLoginReauest(self.factory.user, self.factory.user, self.factory.user, self.factory.password)
        msg=userLoginReauest(self.factory.user, "admin", self.factory.user, self.factory.password)        
        self.transport.write(msg)
        protocolDebug("connectionMade %s"%(msg))
示例#6
0
def handleRemoveUser(connectuser, noUse):
    '''handleRemoveUser'''
    protocolDebug("client_twisted handleRemoveUser")
    noUse = noUse
    try:
        frame.removeUser(connectuser[0])
        #pylint: disable=W0702
    except:
        pass
示例#7
0
def handleRefreshSendMessage(data, noUse):
    '''handleRefreshSendMessage'''
    protocolDebug("client_twisted handleRefreshSendMessage")
    noUse = noUse
    try:    
        frame.refreshSendMessage(data[0])
        #pylint: disable=W0702
    except:
        pass    
示例#8
0
def handleRefreshReceMessage(data, noUse):
    '''handleRefreshReceMessage'''
    protocolDebug("client_twisted handleRefreshReceMessage")
    noUse = noUse
#    print data
#    print noUse
    try:    
        frame.refreshReceMessage(data[0], data[1], data[2])
        #pylint: disable=W0702
    except:
        pass   
示例#9
0
 def sendFriends(self):
     #发送用户好友列表到客户端
     senddata = None
     if self.factory.userflag == None:
         protocolDebug(u"server_twisted.xdServerProtocol.sendFriends 1 ***user friends: " + "cvs")
         senddata = "cvs"
     else:
         protocolDebug(u"server_twisted.xdServerProtocol.sendFriends 2 ***user friends: " + self.factory.user.getUserFriends(self.connectuser))
         senddata = self.factory.user.getUserFriends(self.connectuser).split(",")
     result = friendListresponsion(self.connectuser, self.connectuser, *senddata)
     self.transport.write(result)
     self.sendFriendsFlag = 1
示例#10
0
def handleConnectionLost(connector, reason):  
    protocolDebug(u'client_twisted client_twisted handleConnectionLost:', str(connector), reason.getErrorMessage())

    try:        
        if frame.taskBar:
            frame.taskBar.Destroy()
            frame.taskBar = None
        #pylint: disable=W0702     
    except:
        pass        
    #pylint: disable=E1101     
    reactor.disconnectAll()            
示例#11
0
 def dataSend(self, data=""):
     '''数据发送'''
     #如果消息源地址和目的地址有效,进行消息发送
     result = self.messageCheck(data)
     if result == 1:
         if self.factory.clientConnect.has_key(self.destinationAddress):
             if self.factory.clientConnect[self.destinationAddress] != 0:
                 protocolDebug(u"server_twisted.xdServerProtocol.dataSend 2 data: \r\n")
                 self.factory.clientConnect[self.destinationAddress].transport.write(data)
             try:
                 self.factory.runControlFunction(self.factory.handleSendMessage, None, data)
                 protocolDebug(u"server_twisted.xdServerProtocol.dataSend 3 data: \r\n")
                 #pylint: disable=W0702  
             except:
                 pass
示例#12
0
    def __init__(self, user=None):
        '''使用user实例代替工厂本省的user字典'''
#        self.deferred=defer.Deferred()
#        print user
        if user != None:
            self.user = user
            self.userflag = 1
            self.clientConnect = {}
        protocolDebug(u"server_twisted.xdServerFactory.__init__ init")
        self.handleSuccess = None
        self.handleFailure = None
        self.handleLoginUser = None
        self.handleLogoutUser = None
        self.handleReceMessage = None
        self.handleSendMessage = None
示例#13
0
def handleFriendlist(friendlist , noUse):
    '''接收到的消息处理'''
    protocolDebug("client_twisted handleFriendlist start")
    
    protocolDebug("noUse: "+str(noUse))
    protocolDebug("friendlist: "+str(friendlist))
    
    frame.setUserFriends(friendlist[0])
    protocolDebug("client_twisted handleFriendlist end")
示例#14
0
    def killUser(self, user):
        '''将用户踢出连接'''
        protocolDebug(u"server_twisted.xdServerFactory.killUser 1")
        if self.clientConnect.has_key(user):
            protocolDebug(u"server_twisted.xdServerFactory.killUser 2 kill user: "******"server_twisted.xdServerFactory.killUser 3") 
示例#15
0
def runServer(port, user):
    '''runServer'''
    protocolDebug(u"server_twisted.runServer 1 ****Server is running at port:%d ****\r\n" % (port))
    Server = xdServerFactory(user)
    protocolDebug(user)
    
    #pylint: disable=E1101
    reactor.listenTCP(port, Server)
    protocolDebug(u"server_twisted.runServer 2 ")
    return Server
示例#16
0
 def getFriends(self, message):
     '''获取friedns用户列表'''
     friendlist=parseCommMessage(message)
     try:
         protocolDebug(u"client_twisted.getFriends 3 user friends list " + repr(friendlist))
         protocolDebug(friendlist)
         self.factory.runControlFunction(self.factory.handleFriendlist,None,friendlist)
         #pylint: disable=W0702
     except:
         protocolDebug(u"client_twisted.getFriends 4 get user frends list err")    
     
     self.getFriendsFlag = 1       
     self.factory.runControlFunction(self.factory.handleSuccess,None,8002)
示例#17
0
 def loginCheck(self, message): 
     '''登陆检查''' 
     result=parseCommMessage(message)
     protocolDebug(u"client_twisted.loginCheck result "+str(result))
     if result==True:
         #用户密码检测成功后,发送用户friendlist请求
         msg=friendListRequest(self.factory.user, self.factory.user)
         self.transport.write(msg)
         self.inused = 1
         protocolDebug(u"client_twisted.loginCheck 1 ok")
     if result==False:
         self.inused = 0
         protocolDebug(u"client_twisted.loginCheck 2 err")
示例#18
0
    def userCheck(self, usermessage):
        '''The first message form the client is user message ,it include user name and use password'''
        #检查用户登录请求信息 
        result = parseCommMessage(usermessage)
        self.connectuser = result[2]
        self.connectpassword = result[3]
        
        if self.factory.userflag == None:
            if self.factory.user.has_key(self.connectuser) == True:
                pass
            else:
                result = userLoginFailed(self.connectuser, self.connectuser, self.connectuser, self.connectpassword)
                protocolDebug("userCheck 1 user and password is wrong")
                self.transport.write(result)
                self.transport.loseConnection()
                return
            
            if self.factory.user[self.connectuser] == self.connectpassword:
                pass
            else:
                result = userLoginFailed(self.connectuser, self.connectuser, self.connectuser, self.connectpassword)
                protocolDebug("userCheck 2 user and password is wrong")
                self.transport.write(result)
                self.transport.loseConnection()
                return
        else:
            if self.factory.user.checkUser(self.connectuser, self.connectpassword) != userControlErrValue["OK"]:
                result = userLoginFailed(self.connectuser, self.connectuser, self.connectuser, self.connectpassword)
                protocolDebug("userCheck 3 user and password is wrong")
                self.transport.write(result)
                self.transport.loseConnection()
                return
                 
        if self.factory.userflag == None:                
            self.factory.clients.append(self) #在factory的连接队列中添加连接实例
            self.factory.clientConnect[self.connectuser] = self #保留用户和连接实例的字典
        else:
            if self.factory.user.getUserLogin(self.connectuser) != 1:
                self.factory.runControlFunction(self.factory.handleLoginUser, self, self.connectuser)
                self.factory.user.login(self.connectuser)
                self.factory.clients.append(self) #在factory的连接队列中添加连接实例
                self.factory.clientConnect[self.connectuser] = self #保留用户和连接实例的字典
            else:
                self.transport.loseConnection()
                return
                    
        self.inused = 1  #client已经登陆
        result = userLoginSucess(self.connectuser, self.connectuser, self.connectuser, self.connectpassword)
        self.transport.write(result)

        self.factory.runControlFunction(self.factory.handleSuccess, None, self.connectuser)
示例#19
0
 def messageCheck(self, message):
     '''消息检查,这里没有加密,使用明文传输'''
     result = parseCommMessage(message)
     self.destinationAddress = result[1] #目的连接地址
     self.sourceAddress = result[0]      #来源地址 
     self.messageContents = result[2]    #发送消息
     
     protocolDebug(u"server_twisted.xdServerProtocol.messageCheck 1 message: " + "src: " + self.destinationAddress + ", dst: " + self.sourceAddress)  
     protocolDebug(u"server_twisted.xdServerProtocol.messageCheck 1 message: " + "messageContents: " + self.messageContents )
     
     #察看消息发送的目的地址和来源地址是否有效
     if self.factory.userflag == None:
         if self.factory.user.has_key(self.sourceAddress) == True:
             if self.factory.user.has_key(self.destinationAddress) == True:
                 return 1 
         return 0    
     else:
         if self.factory.user.findUser(self.sourceAddress) == userControlErrValue["HaveUser"]:
             protocolDebug("HaveUser")
             if self.factory.user.findUserFriend(self.sourceAddress, self.destinationAddress) == userControlErrValue["OK"]:
                 protocolDebug("HaveFriend")
                 return 1
         return 0
示例#20
0
def handelFailure(failure, port):
    '''注册给客户端协议,在连接失败时调用'''        
    protocolDebug( "client_twisted handelFailure"+str(port))
    protocolDebug(failure.getErrorMessage())
示例#21
0
def handleSuccess(result, port):
    '''注册给客户端协议,在连接成功时调用'''
    protocolDebug( "client_twisted handleSuccess"+str(port))
    frame.updatePanel()
    protocolDebug(result)
示例#22
0
 def warp(*args):
     protocolDebug("*****************"+func.__name__+': start')
     func(*args) 
     protocolDebug("*****************"+func.__name__+': end') 
示例#23
0
 def clientConnectionLost(self, connector, reason):
     '''断开连接处理函数'''
     protocolDebug(u'client_twisted xdClientFactory.client_twisted Lost connection. Reason:', reason.getErrorMessage())
     self.runControlFunction(self.handleConnectionLost, reason, connector)
示例#24
0
def handleFailure(failure, port):
    '''handleFailure'''
    protocolDebug(u"client_twisted handleFailure 1 : connectin from port %i: %s\r\n" % (
          port, failure.getErrorMessage()))
示例#25
0
 def stopFactory(self):
     protocolDebug(u"stop Factory")
示例#26
0
 def startedConnecting(self, connector):
     '''开始连接'''
     protocolDebug(u'client_twisted  Started to connect.')
示例#27
0
 def clientConnectionFailed(self, connector, reason):
     '''连接失败处理函数'''
     protocolDebug(u'client_twisted xdClientFactory.Connection failed. Reason:', reason.getErrorMessage())
     self.runControlFunction(self.handleConnectionFailed, reason, connector)
示例#28
0
 def messageSend(self, friend,data):
     '''新数据发送,将数据编码合作一个函数里'''
     if data:
         protocolDebug(u"client_twisted send: %s" % (data))
         msg=commMessage(self.factory.user, friend, data)
         self.transport.write(msg)
示例#29
0
def handleSuccess(data, port):
    '''handleSuccess'''
    data = data
    port = port
    protocolDebug(u"server_twisted.handelSuccess 1 start")
    protocolDebug(u"server_twisted.handelSuccess 2 end")
示例#30
0
 def buildProtocol(self, addr):
     '''创建Protocol实例'''
     protocolDebug(u'client_twisted Connected.')
     self.protocolInstance = self.protocol()
     self.protocolInstance.factory = self
     return self.protocolInstance