// AME = Alive Message Expected
void UDPServer::sendAME()
{
    QString address = udpSocket->localAddress().toString();
    quint16 port = udpSocket->localPort();
    QByteArray datagram = "4;" + address.toLatin1() + ";" +  QByteArray::number(port);

    startAliveTimer();
    sendDatagram(datagram);

    qDebug() << "AME Message sent";
}
Ejemplo n.º 2
0
//Select transport based on profile and opts and set default GUID
int MF_BaseSocketManager::openRequest(MF_APIOpen *event){
	MF_Log::mf_log(MF_DEBUG, "MF_BaseSocketManager:open request analyzing request profile=%s guid=%d", event->getProfile(), event->getSrcGUID());
	if(!strcmp("basic", event->getProfile())){
		type = 1;
	} else{
		MF_Log::mf_log(MF_ERROR, "MF_BaseSocketManager:openRequest wrong profile request %s", event->getProfile());
		openReplyError(STACK_ACTION_FAILURE);
		return -1;
	}

	//Create transport
	if (transSetting.isReliabTrans) {
		trnsp = new MF_ReliabTransport(ID, &recvBuffer, &sendBuffer, _system);
		((MF_ReliabTransport*)(trnsp))->setTransSetting(transSetting);
	} else {
		trnsp = new MF_BasicTransport(ID, &recvBuffer, &sendBuffer, _system);
	}
	trnsp->setMyGUID(event->getSrcGUID());

	_system->getSocketTable()->addManager(this);
	if(event->getSrcGUID()==0){
		MF_Log::mf_log(MF_DEBUG, "MF_BaseSocketManager:openRequest using device default srcGUID");
		_system->getSocketTable()->addGUID(event->getUID(), _system->getRouter()->getDefaultGUID());
		GUIDs.push_back(_system->getRouter()->getDefaultGUID());
	}
	else{
		_system->getSocketTable()->addGUID(event->getUID(), event->getSrcGUID());
		_system->getRouter()->addGUID(event->getSrcGUID());
		GUIDs.push_back(event->getSrcGUID());
	}
	_system->getSocketTable()->addTID(ID, ID);

	startAliveTimer();

	MF_Log::mf_log(MF_DEBUG, "MF_BaseSocketManager:openRequest opened new socket with ID=%u default srcGUID=%d", ID, event->getSrcGUID());
	open = true;
	openReplySuccess();
	connectToClient();
	return 0;
}