Issue with client and server

Hello, i made a client and server and added a security way, i send the requested security message but server still saying that there are no security message.
Server: (Read from handleDatagram)

import util.Globals as Globals
from panda3d.core import *
from direct.task.TaskManagerGlobal import *
from direct.directbase.DirectStart import *
import util.IMAMsgTypes as MsgTypes
from direct.distributed.PyDatagram import *
from direct.distributed.PyDatagramIterator import *

class Server:
    def __init__(self):
        self.cManager = QueuedConnectionManager()
        self.cListener = QueuedConnectionListener(self.cManager, 0)
        self.cReader = QueuedConnectionReader(self.cManager, 0)
        self.cWriter = ConnectionWriter(self.cManager,0)
        self.activeConnections=[] 
        self.connectionsIP = []
        self.client = None
        
        self.tcpSocket = self.cManager.openTCPServerRendezvous(Globals.port,Globals.backlog)
        self.cListener.addConnection(self.tcpSocket)
        
        taskMgr.add(self.listenerPolling,"pool listener",-39)
        taskMgr.add(self.readerPolling,"pool reader",-40)
		
        print('Advs is running!')
		
		
        
    def listenerPolling(self,task):
        if self.cListener.newConnectionAvailable():
            self.rendezvous = PointerToConnection()
            self.netAddress = NetAddress()
            self.newConnection = PointerToConnection()
            if self.cListener.getNewConnection(self.rendezvous,self.netAddress,self.newConnection):
                self.newConnection = self.newConnection.p()
                self.activeConnections.append(self.newConnection)
                self.connectionsIP.append(self.netAddress)
                self.client = self.newConnection
                self.cReader.addConnection(self.newConnection) 
                print('New connection at: %s, IP: %s' %(self.newConnection,self.netAddress))
                self.listAllClientsIP()

        return task.cont
    
    def readerPolling(self,task):
        if self.cReader.dataAvailable():
            self.datagram=NetDatagram() 
            if self.cReader.getData(self.datagram):
                self.handleDatagram(self.datagram)
        return task.cont
        
        
        
    def closeConnections(self):
        for aClient in self.activeConnections:
            self.cReader.removeConnection(aClient)
            self.activeConnections=[]
            self.cManager.closeConnection(self.tcpSocket)
            
    def listAllClientsIP(self):
        for ip in self.connectionsIP:
            print('%s\n' %ip)
            
    def handleDatagram(self,datagram):
        iterator = PyDatagramIterator(datagram)
        msgid = iterator.getUint8()
        if msgid == 0:
            if iterator.getUint8 != 3:
                pd = PyDatagram()
                pd.addUint8(1)
                pd.addString("The first message isn't YAHOO.")
                self.cWriter.send(pd,self.client)
                print('Client tried to connect without YAHOO.')
            else:
                pd = PyDatagram()
                pd.addUint8(2)
                self.cWriter.send(pd,self.client)
            
            
server=Server()
run()

Client:

from pandac.PandaModules import *
loadPrcFile('data/etc/config.prc')

import direct.directbase.DirectStart

from ima.gui.StartScreen import *
from ima.localizer.IMALocalizerEnglish import *
import ima.util.Globals as Globals
import server.util.IMAMsgTypes as MsgTypes

import __builtin__

from panda3d.core import *
import sys
from direct.distributed.PyDatagram import *
from direct.distributed.PyDatagramIterator import *


class Game:         
    name = 'I\'m Adventure'
    author = 'Rounder Square'
    copyright = 'Copyright 2014 - Rounder Square - All rights reserved.'

    def __init__(self):
        pass
		
    def connect(self):
        print('Connecting to Advs')
        self.cManager = QueuedConnectionManager()
        self.cReader = QueuedConnectionReader(self.cManager, 0)
        self.cWriter = ConnectionWriter(self.cManager,0)
        self.myConnection=self.cManager.openTCPClientConnection(Globals.ip_address,Globals.port_address,
        Globals.timeout)
        if self.myConnection:
            self.cReader.addConnection(self.myConnection)
            print('Connected to Advs!')
            self.sendYahoo()
            taskMgr.add(self.startDatagramHandling,'incoming datagram handling')
            
    def startDatagramHandling(self,task):
        if self.cReader.dataAvailable():
            self.datagram=NetDatagram() 
            if self.cReader.getData(self.datagram):
                self.handleDatagram(self.datagram)
        return task.cont    
        
    def handleDatagram(self,datagram):
        iterator = PyDatagramIterator(datagram)
        msgid = iterator.getUint8()
        if msgid == 1:
            print('Advs: %s' %iterator.getString())
            sys.exit()
        elif msgid == 2:
            print('Advs: Client send YAHOO! Continuing...')
        
    def sendYahoo(self):
        dg = PyDatagram()
        dg.addUint8(0)
        dg.addUint8(3)
        self.cWriter.send(dg,self.myConnection)
        
        


__builtin__.game = Game()
game.connect()
__builtin__.startscreen = StartScreen()
run()

My MsgTypes:

from direct.showbase.PythonUtil import invertDictLossless
MsgName2Id = {
    'CLIENT_YAHOO':0,
    'CLIENT_FAIL_YAHOO':1,
    'CLIENT_CONNECTION_SUCCESS':2,
    'CLIENT_SEND_YAHOO':3
    }




MsgId2Names = invertDictLossless(MsgName2Id)
    
for name, value in MsgName2Id.items():
    exec '%s = %s' % (name, value)
del name, value

Error (Server and Client):
prntscr.com/35h2ku
prntscr.com/35h2o3

What is wrong?