Example #1
0
void CUDP_RTSPClient::handleHeartbeatThread()
{
	try{
		while(m_brun){
			int iseconds = 5*60*100/*5*60*100*/;
			while(iseconds > 0){
				boost::this_thread::sleep(boost::posix_time::milliseconds(10));
				if(!m_brun)return;
				iseconds--;

				boost::asio::socket_base::bytes_readable command(true);
				rtsp_socket_.io_control(command);
				std::size_t bytes_readable = command.get();
				if( bytes_readable > 0 )
				{
					int iret = HandleIncomingData();
					if( iret < 0 && iret != Failed ){
						g_MSNetSDKlog.Add("CUDP_RTSPClient::HandleIncomingData1 iret = %d", iret);
						return;
					}
				}
			}
			int iret = sendGet_ParameterCommand( m_url );
			if(iret < 0)return;
			iret = HandleIncomingData();
			if( iret < 0 && iret != Failed )
			{
				g_MSNetSDKlog.Add("CUDP_RTSPClient::HandleIncomingData2 iret = %d", iret);
				return;
			}
		}
	}catch (std::exception& e){
		g_MSNetSDKlog.Add("CUDP_RTSPClient::handleHeartbeatThread error = %s", e.what());
	}
}
Example #2
0
//---------------------------------------------------------------------------
void  Connection::DataArrivedOnSocket()
{
    char tempReadBuffer[8192];
    
    ZeroMemory(tempReadBuffer, 8192);
    
    int amountRead = recv(this->sock, tempReadBuffer, 8190, 0);
    if (SOCKET_ERROR != amountRead)
	{
		// @Note : there may have some binary data in string
		//
		FlowStatistics(amountRead);

        CryptData((BYTE*)tempReadBuffer,amountRead);
        readBuffer += string(tempReadBuffer, amountRead);

        HandleIncomingData();
	}
}
Example #3
0
int CUDP_RTSPClient::startRTSPRequest(char* ip ,int port ,const char *url, const char* Range_clock, float scale)
{
	strcpy(this->m_url, url);
	strcpy(this->m_realConnectIP, ip);

	int i = connectRtspSrv(ip,port);
	if( i < 0 )return i;

	i = sendSomeCommand(url);
	if(i < 0)return i;

	i = sendPlayCommand(url, scale, Range_clock);
	if( i < 0 )return i;

	i = HandleIncomingData();
	if( i < 0 )return i;

	if( i >= 0 )
		Heartbeat_thread_ = boost::thread(&CUDP_RTSPClient::handleHeartbeatThread , this);

	return i;
}