亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? messageserver.cpp

?? Symbian下的p2p工程
?? CPP
字號:
/* Copyright (c) 2004, Nokia. All rights reserved */


// INCLUDE FILES
#include <StringLoader.h>
#include <BTPointToPoint.rsg>

#include "MessageServer.h"
#include "MessageProtocolConstants.h"
#include "MessageServiceAdvertiser.h"
#include "Log.h"
#include "BTPointToPoint.pan"


// ============================ MEMBER FUNCTIONS ==============================

// ----------------------------------------------------------------------------
// CMessageServer::NewL()
// Two-phased constructor.
// ----------------------------------------------------------------------------
//
CMessageServer* CMessageServer::NewL( MLog& aLog )
    {
    CMessageServer* self = NewLC( aLog );
    CleanupStack::Pop( self );
    return self;
    }

// ----------------------------------------------------------------------------
// CMessageServer::NewLC()
// Two-phased constructor.
// ----------------------------------------------------------------------------
//
CMessageServer* CMessageServer::NewLC( MLog& aLog )
    {
    CMessageServer* self = new ( ELeave ) CMessageServer( aLog );
    CleanupStack::PushL( self );
    self->ConstructL();
    return self;
    }

// ----------------------------------------------------------------------------
// CMessageServer::CMessageServer()
// Constructor.
// ----------------------------------------------------------------------------
//
CMessageServer::CMessageServer( MLog& aLog )
: CActive( CActive::EPriorityStandard ),
  iLog( aLog ),
  iState( EDisconnected )
    {
    CActiveScheduler::Add( this );
    }

// ----------------------------------------------------------------------------
// CMessageServer::~CMessageServer()
// Destructor.
// ----------------------------------------------------------------------------
//
CMessageServer::~CMessageServer()
    {
    TRAPD( err,StopL() );
    if ( err != KErrNone )
        {
        Panic( EBTPointToPointServerStop );
        }
    delete iAdvertiser;
    iAdvertiser = NULL;

    Cancel();
    }

// ----------------------------------------------------------------------------
// CMessageServer::ConstructL()
// Perform second phase construction of this object.
// ----------------------------------------------------------------------------
//
void CMessageServer::ConstructL()
    {
    iAdvertiser = CMessageServiceAdvertiser::NewL();
    }

// ----------------------------------------------------------------------------
// CMessageServer::DoCancel()
// Cancel any outstanding requests.
// ----------------------------------------------------------------------------
//
void CMessageServer::DoCancel()
    {
    }

// ----------------------------------------------------------------------------
// CMessageServer::RunL()
// Respond to an event.
// ----------------------------------------------------------------------------
//
void CMessageServer::RunL()
    {
    if ( iStatus == KErrDisconnected )
        {
        // Disconnected so go back to listening
        HBufC* strDisconnected = StringLoader
            ::LoadLC ( R_BTPO_STR_DISCONNECTED );
        iLog.LogL( *strDisconnected );
        CleanupStack::PopAndDestroy( strDisconnected );
        StopL();
        return;
        }
    else if ( iStatus == KErrAbort )
        {
        HBufC* strDisconnected = StringLoader
            ::LoadLC ( R_BTPO_STR_DISCONNECTED );
        iLog.LogL( *strDisconnected );
        CleanupStack::PopAndDestroy( strDisconnected );
        StopL();
        return;
        }
    else if ( iStatus != KErrNone )
        {
        HBufC* strRecvErr = StringLoader
            ::LoadLC ( R_BTPO_STR_RECV_ERR );
        iLog.LogL( *strRecvErr, iStatus.Int() );
        CleanupStack::PopAndDestroy( strRecvErr );
        StopL();
        return;
        }

    switch ( iState )
        {
        HBufC* textResource;
        case EConnecting:
            textResource = StringLoader::LoadLC ( R_BTPO_CONNECTED );
            iLog.LogL( *textResource );
            CleanupStack::PopAndDestroy( textResource );
            
            // do not accept any more connections
            iAdvertiser->UpdateAvailabilityL( EFalse );
            RequestData();
            iState = EWaitingForMessage;
            break;

        case EWaitingForMessage:
            {
            HBufC* text = HBufC::NewLC( iBuffer.Length() );
            text->Des().Copy( iBuffer );

            iLog.LogL( *text );
            CleanupStack::PopAndDestroy( text );
            RequestData(); //  Get more data
            }
            break;

        default:
            Panic( EBTPointToPointReceiverInvalidState );
            break;
        }
    }

// ----------------------------------------------------------------------------
// CMessageServer::StartL()
// Starts the server.
// ----------------------------------------------------------------------------
//
void CMessageServer::StartL()
    {
    if ( iState != EDisconnected )
        {
        User::Leave( KErrInUse );
        }

    User::LeaveIfError( iSocketServer.Connect() );
    TInt result( 0 );
    result = iListeningSocket.Open( iSocketServer, KServerTransportName );
    if ( result != KErrNone )
        {
        iSocketServer.Close();
        User::Leave( result );
        }

   
    // 
	// Set the Socket's security with parameters, 
	// Authentication, Encryption, Authorisation and Denied
	// Method also return the channel available to listen to.
	TInt channel ( SetSecurityWithChannelL( EFalse, EFalse, ETrue, EFalse ) );

    iAdvertiser->StartAdvertisingL( channel );
    iAdvertiser->UpdateAvailabilityL( ETrue );
    }







// ----------------------------------------------------------------------------
// CMessageServer::SetSecurityWithChannelL()
// Sets the security on the channel port and returns the available port.
// ----------------------------------------------------------------------------
//
TInt CMessageServer::SetSecurityWithChannelL( TBool aAuthentication,
                                                  TBool aEncryption,
                                                  TBool aAuthorisation,
												  TBool aDenied )

 {

	// Local variable to channel to listen to.
    TInt channel;


    User::LeaveIfError( iListeningSocket.GetOpt( KRFCOMMGetAvailableServerChannel, KSolBtRFCOMM, channel ) );

    TBTSockAddr listeningAddress;

	// Set the Port to listen to.
    listeningAddress.SetPort( channel );

	// Write Log events
    HBufC* strGetPort = StringLoader::LoadLC ( R_BTPO_STR_GET_PORT );
    iLog.LogL( *strGetPort, channel );
    CleanupStack::PopAndDestroy( strGetPort );


    User::LeaveIfError( iListeningSocket.Bind( listeningAddress ) );
    User::LeaveIfError( iListeningSocket.Listen( KListeningQueSize ) );

     // close old connection - if any
	iAcceptedSocket.Close();

    // Open abstract socket
    User::LeaveIfError( iAcceptedSocket.Open( iSocketServer ) );  

	// Set the Active Object's State to Connecting indicated.
    iState = EConnecting;

    iListeningSocket.Accept( iAcceptedSocket, iStatus );

	// Set the Active Object Active again,
    SetActive();

	// Write Log events
    HBufC* acceptNextConn = StringLoader::LoadLC ( R_BTPO_ACCEPT_NEXT_CONN );
    iLog.LogL( *acceptNextConn );
    CleanupStack::PopAndDestroy( acceptNextConn );

 
	// Set the security according to.
	TBTServiceSecurity serviceSecurity;
	serviceSecurity.SetUid ( KUidBTPointToPointApp );
	serviceSecurity.SetAuthentication ( aAuthentication );
	serviceSecurity.SetEncryption ( aEncryption );
	serviceSecurity.SetAuthorisation ( aAuthorisation );
	serviceSecurity.SetDenied( aDenied );

	// Attach the security settings.
	listeningAddress.SetSecurity(serviceSecurity);

	// Retrurn the port to listen to.
	return channel;
    }
										  

// ----------------------------------------------------------------------------
// CMessageServer::StopL()
// Stops the server.
// ----------------------------------------------------------------------------
//
void CMessageServer::StopL()
    {
    if ( iState != EDisconnected )
        {
        if ( iAdvertiser->IsAdvertising() )
            {
            iAdvertiser->StopAdvertisingL();
            }
        iAcceptedSocket.Close();
        iListeningSocket.Close();
        iSocketServer.Close();
        }
        iState = EDisconnected;
    }

// ----------------------------------------------------------------------------
// CMessageServer::RequestData()
// Request data from the client.
// ----------------------------------------------------------------------------
//
void CMessageServer::RequestData()
    {
    iAcceptedSocket.RecvOneOrMore( iBuffer, 0, iStatus, iLen );
    SetActive();
    }

// ----------------------------------------------------------------------------
// CMessageServer::IsConnected()
// Results true if the server is connected.
// ----------------------------------------------------------------------------
//
TBool CMessageServer::IsConnected()
    {
    return !( iState == EDisconnected );
    }

// End of File

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区三区在线观看| 日本免费新一区视频| 日韩一区二区免费电影| 99久久久国产精品| 久久91精品国产91久久小草 | 日韩欧美一级精品久久| 99精品桃花视频在线观看| 国产一区二区导航在线播放| 午夜电影久久久| 亚洲国产精品视频| 亚洲欧美另类图片小说| 国产精品久久久久影视| 久久精品视频在线看| 久久久久久久综合| 久久这里只有精品首页| 久久精品一区二区三区不卡牛牛 | 久久99国内精品| 麻豆精品视频在线观看视频| 日韩va亚洲va欧美va久久| 午夜精品久久久久| 天堂va蜜桃一区二区三区漫画版| 亚洲精品美腿丝袜| 日韩av在线发布| 日本v片在线高清不卡在线观看| 视频在线在亚洲| 精品一区二区在线播放| 懂色av噜噜一区二区三区av| 成人综合日日夜夜| 日本电影亚洲天堂一区| 欧美日韩国产另类一区| 日韩一区二区三区四区五区六区| 日韩女优电影在线观看| 国产日韩欧美a| 日韩理论片在线| 天堂va蜜桃一区二区三区| 久久成人久久爱| 99re视频精品| 日韩一级免费观看| 中文字幕在线视频一区| 午夜精品福利一区二区三区av | ...中文天堂在线一区| 亚洲成人av电影在线| 国产老女人精品毛片久久| 色爱区综合激月婷婷| 久久先锋影音av鲁色资源网| 亚洲精品日产精品乱码不卡| 美脚の诱脚舐め脚责91| 91麻豆.com| 久久免费精品国产久精品久久久久| 国产精品久久久久久久浪潮网站| 五月天一区二区| 91在线视频官网| 国产偷国产偷精品高清尤物| 日韩福利电影在线| 欧美性生活久久| 依依成人综合视频| 国产91精品免费| 久久美女艺术照精彩视频福利播放| 五月天激情综合网| 在线观看av一区| 亚洲精品久久久久久国产精华液| 国产一区二区成人久久免费影院 | 亚洲最大成人综合| 99精品国产热久久91蜜凸| 国产精品毛片a∨一区二区三区| 久久精品99国产精品| 精品欧美一区二区三区精品久久| 天天影视网天天综合色在线播放| 欧美日韩一区二区在线观看| 亚洲与欧洲av电影| 欧美日韩在线播| 日韩精品乱码av一区二区| 欧美群妇大交群的观看方式| 日韩av一级电影| 26uuu国产日韩综合| 成人午夜短视频| 一区二区三区电影在线播| 97久久超碰国产精品| 亚洲激情校园春色| 欧美精品一二三| 国内精品国产成人| 亚洲欧美偷拍卡通变态| 欧美日韩高清影院| 国产一区久久久| 亚洲精选一二三| 日韩欧美国产成人一区二区| 国产精品一区二区果冻传媒| 最好看的中文字幕久久| 欧美精品丝袜久久久中文字幕| 久草中文综合在线| 亚洲欧洲日韩在线| 91精品久久久久久久91蜜桃| 国产精品一卡二| 亚洲动漫第一页| 国产亚洲精品aa| 欧美日韩国产在线播放网站| 国内成+人亚洲+欧美+综合在线| 1区2区3区欧美| 精品乱码亚洲一区二区不卡| 欧美在线观看你懂的| 国产·精品毛片| 精品系列免费在线观看| 午夜在线电影亚洲一区| 亚洲国产精品传媒在线观看| 欧美午夜寂寞影院| 成人午夜av影视| 国产一区二三区| 艳妇臀荡乳欲伦亚洲一区| 欧美激情一二三区| 欧美大度的电影原声| 欧美日韩国产美女| 欧美日韩精品一区二区三区| 91视频在线看| 成人免费av网站| 国产999精品久久| 国产在线一区观看| 久久99精品国产麻豆不卡| 日本亚洲视频在线| 七七婷婷婷婷精品国产| 奇米777欧美一区二区| 日韩国产一区二| 青娱乐精品视频在线| 免费黄网站欧美| 久久成人羞羞网站| 国产高清在线观看免费不卡| 精品写真视频在线观看| 国产乱人伦偷精品视频免下载| 国产一区二区伦理片| 国产精品资源站在线| 国产91精品欧美| 99riav久久精品riav| 欧洲精品一区二区三区在线观看| 色呦呦网站一区| 欧美日韩在线免费视频| 精品毛片乱码1区2区3区| 精品国产麻豆免费人成网站| 久久久亚洲精华液精华液精华液| 91福利社在线观看| 狠狠色丁香婷综合久久| 久久精品国产亚洲5555| 99久久久无码国产精品| 欧美日韩国产电影| 中文字幕精品在线不卡| 日本成人在线看| 成人午夜电影小说| 日韩欧美资源站| 亚洲精品成人悠悠色影视| 久久国产精品第一页| 91免费观看在线| 久久理论电影网| 久久精品国产网站| 欧美人妇做爰xxxⅹ性高电影 | 亚洲成人av一区二区| 91婷婷韩国欧美一区二区| 精品国产99国产精品| 午夜久久电影网| 欧美色图天堂网| 亚洲人妖av一区二区| 国产成人a级片| 亚洲精品在线免费播放| 日本欧美一区二区三区乱码| 精品视频在线免费看| 一区二区三区欧美日| 色综合久久久久综合99| 中文字幕一区二区三区乱码在线 | 成人激情免费视频| 国产人伦精品一区二区| 国产中文一区二区三区| 久久午夜羞羞影院免费观看| 国产乱理伦片在线观看夜一区| 精品国产99国产精品| 国产精品羞羞答答xxdd| 久久久电影一区二区三区| 国产精品中文有码| 久久老女人爱爱| 成人sese在线| 亚洲精品国产一区二区精华液| 色悠悠亚洲一区二区| 日韩精品福利网| 亚洲精品一区二区三区香蕉| 国产精品一区二区久久精品爱涩| 国产日产欧美一区| 成人午夜电影小说| 亚洲一二三四区不卡| 日韩欧美亚洲另类制服综合在线| 国产制服丝袜一区| 亚洲九九爱视频| 日韩欧美一二三四区| 91色在线porny| 蜜桃一区二区三区四区| 欧美国产一区视频在线观看| 91福利精品第一导航| 国产麻豆视频一区二区| 一区二区日韩av| 久久蜜桃av一区二区天堂| 欧美探花视频资源| 成人一区二区三区中文字幕| 性久久久久久久久| 中文字幕在线播放不卡一区| 欧美mv日韩mv国产网站|