?? socketengine.cpp
字號:
/*
============================================================================
Name : SocketEngine.cpp
Author :
Version : 1.0
Copyright : Your copyright notice
Description : CSocketEngine implementation
============================================================================
*/
#include <in_sock.h>
#include "SocketEngine.h"
CSocketEngine::CSocketEngine()
{
// No implementation required
}
CSocketEngine::~CSocketEngine()
{
if (iSocket.SubSessionHandle() != 0)
{
iSocket.CancelAll();
iSocket.Close();
}
if (iSocketServ.Handle() != 0)
{
iSocketServ.Close();
}
delete iRecvData;
iRecvData = NULL;
}
CSocketEngine* CSocketEngine::NewLC()
{
CSocketEngine* self = new (ELeave)CSocketEngine();
CleanupStack::PushL(self);
self->ConstructL();
return self;
}
CSocketEngine* CSocketEngine::NewL()
{
CSocketEngine* self=CSocketEngine::NewLC();
CleanupStack::Pop(); // self;
return self;
}
void CSocketEngine::ConstructL()
{
}
/**
* 初始化方法
*/
void CSocketEngine::InitL()
{
TInt err = iSocketServ.Connect();
if (err != KErrNone && err != KErrAlreadyExists)
{
User::Leave(err);
}
err = iSocket.Open(iSocketServ, KAfInet, KSockStream, KProtocolInetTcp);
if (err != KErrNone && err != KErrAlreadyExists)
{
User::Leave(err);
}
}
void CSocketEngine::ConnectL()
{
TInetAddr addr;
// 設(shè)置遠(yuǎn)程服務(wù)器段IP
_LIT(KAddr, "127.0.0.1");
addr.Input(KAddr);
// 設(shè)置端口
addr.SetPort(8532);
// 請求連接
TRequestStatus status(KRequestPending);
iSocket.Connect(addr, status);
User::WaitForRequest(status);
User::LeaveIfError(status.Int());
}
void CSocketEngine::SendInfoL()
{
TBuf8<8> buf(_L8("12345678"));
TRequestStatus status(KRequestPending);
iSocket.Send(buf, 0, status);
User::WaitForRequest(status);
User::LeaveIfError(status.Int());
// 等待服務(wù)器端返回?cái)?shù)據(jù)
RecvInfoL();
}
void CSocketEngine::RecvInfoL()
{
TBuf8<8> buf;
TRequestStatus status(KRequestPending);
iSocket.Recv(buf, 0, status);
User::WaitForRequest(status);
User::LeaveIfError(status.Int());
delete iRecvData;
iRecvData = NULL;
iRecvData = buf.Alloc();
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -