📄 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;
// 设置远程服务器段IP
_LIT(KAddr, "127.0.0.1");
addr.Input(KAddr);
// 设置端口
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());
// 等待服务器端返回数据
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();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -