code: def recvProtocolVersion(self, data):
          
          self.readProtocolVersion(data)
          if self._version.value == ProtocolVersion.UNKNOWN:
              log.info("Unknown protocol version %s send 003.008"%data.getvalue())
              #protocol version is unknown try best version we can handle
              self._version.value = ProtocolVersion.RFB003008
          #send same version of 
          self.send(self._version)
          
          #next state read security
          if self._version.value == ProtocolVersion.RFB003003:
              self.expect(4, self.recvSecurityServer)
          else:
              self.expectWithHeader(1, self.recvSecurityList)
docs: Read handshake packet 
          If protocol receive from client is unknown
          try best version of protocol version (ProtocolVersion.RFB003008)
          @param data: Stream