Symbian的Socket

// // TCP Socket使用 // // 创建 iSocketServ.Connect() iEchoSocket.Open(iSocketServ, KAfInet, KSockStream, KProtocolInetTcp)

// 连接1 ConnectL(TUint32 aAddr) iAddress.SetPort(7); iAddress.SetAddress(aAddr); iEchoSocket.Connect(iAddress, iStatus);

// 连接2 ConnectL(const TDesC& aServerName) iResolver.Open(iSocketServ, KAfInet, KProtocolInetUdp) iResolver.GetByName(aServerName, iNameEntry, iStatus); // 异步

  // --->       iNameRecord = iNameEntry();       TInetAddr::Cast(iNameRecord.iAddr).Output(ipAddr);       ConnectL(TInetAddr::Cast(iNameRecord.iAddr).Address()); // -->连接1

// 读: iEchoSocket->Recv(iBuffer, 0, iStatus);

// 写 iEchoSocket->Write(iBuffer, iStatus);

// UDP的:     // 读     iEchoSocket->RecvFrom(iBuffer,aAddr,NULL,iStatus);     // 写     iEchoSocket->SendTo(iBuffer,aAddr,NULL,iStatus);

// 超时{ Cancel(); iEngineStatus = ETimedOut; TRequestStatus* p=&iStatus;   // Signal CEchoEngine::RunL() imediately SetActive(); User::RequestComplete(p, ETimedOut); //  }

// 关闭 Cancel(); // 所有的CActive iEchoSocket.Close(); iSocketServ.Close();

/ // 关于IAP设置/// / // 创建 iSocketServ.Connect() iConnect.Open(iSocketServ) // RConnection iConnect;

// 初始化连接参数 void CIAPConnectEngine::SetConnectionPreferences(     TUint aBearer,     TBool aDialog,     TUint32 aIapId)     {     iPref.SetDirection(ECommDbConnectionDirectionOutgoing);     if (aDialog)         {         iPref.SetDialogPreference(ECommDbDialogPrefPrompt);         }     else         {         iPref.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);         }     iPref.SetIapId(aIapId);     iPref.SetBearerSet(aBearer);     iPref.SetDirection(ECommDbConnectionDirectionOutgoing);     }

// 枚举已有的接入点信息 iConnect.EnumerateConnections(connectionCount) if (connectionCount)         {         TPckgBuf<TConnectionInfoV2> connectionInfo;         for (TUint i = 1; i <= connectionCount; ++i)             {             iConnect.GetConnectionInfo(i, connectionInfo);                 // 找到接入点,就不用再创建了。             //if (connectionInfo().iIapId == aIap)             //    {             //    connected = ETrue;             //    break;             //   }             }         }

// 连接IAP  iConnect.Start(iPref, iStatus); // 此处会出现IAP选则框,选中后进入runL  SetActive();  // 显示等待对话框  if(iWaitDialog==NULL)  {   LOG_WRITE(_L("iWaitDialog==NULL"));   iWaitDialog = new ( ELeave )CAknWaitDialog(    reinterpret_cast<CEikDialog**>( &iWaitDialog ), ETrue );   iWaitDialog->SetCallback(this);   iWaitDialog->ExecuteDlgLD( CAknNoteDialog::ENoTone,R_WAIT_NOTE_NOEXIT );  }

 ---> run 方法中执行用户选中IAP  if ( iWaitDialog )         {         iWaitDialog->ProcessFinishedL();         }

 // 再次连接服务器。需要缓存连接参数。

// 使用connect  RStringPool strP = iSession.StringPool();  RHTTPConnectionInfo connInfo = iSession.ConnectionInfo();  connInfo.SetPropertyL ( strP.StringF(HTTP::EHttpSocketServ,RHTTPSession::GetTable() ), THTTPHdrVal (iConnectEngine->SocketSevr().Handle()) );

 RConnection& connection = iConnectEngine->ConnectSrc();  TInt connPtr = REINTERPRET_CAST(TInt,&connection);  connInfo.SetPropertyL ( strP.StringF(HTTP::EHttpSocketConnection, RHTTPSession::GetTable() ), THTTPHdrVal (connPtr) );   iConnectFlag|=CONNECT_FLAG_BINDED;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值