⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dtsocket.cpp

📁 一个关于通信的源代码
💻 CPP
字号:
/*
============================================================================
 Name        : CDTSocket.cpp
 Author      : 
 Version     :
 Copyright   : Your copyright notice
 Description : CDTSocket.cpp - source file
============================================================================
*/

#include "DTSocket.h"

CDTSocket::CDTSocket(TInt aPort)
{
	iPort = aPort;
}

CDTSocket::~CDTSocket()
{
	CleanupStack::PopAndDestroy();
}

CDTSocket* CDTSocket::NewLC(TInt aPort)
{
	CDTSocket* self = new(ELeave) CDTSocket(aPort);
	CleanupStack::PushL(self);
	self->ConstructL();
	return self;
}

void CDTSocket::ConstructL()
{
	TInetAddr addr(KInetAddrLoop, iPort);
	User::LeaveIfError(iSocketServ.Connect());
	CleanupClosePushL(iSocketServ);//if function leaves ensure socket serv session closes
	User::LeaveIfError(iListener.Open(iSocketServ, KAfInet, KSockStream, KProtocolInetTcp));
	User::LeaveIfError(iListener.Bind(addr));  
	User::LeaveIfError(iListener.Listen(1));
}

void CDTSocket::Accept()
{
	TRequestStatus status;
	TSockXfrLength dummyLength;
	iBlank.Open(iSocketServ);
	iListener.Accept(iBlank, status);
	User::WaitForRequest(status);
	if(status != KErrNone) User::Leave(KErrGeneral);
}

TInt CDTSocket::Read(TDes8& aBuffer, TInt aLength)
{
	TRequestStatus status;
	TSockXfrLength dummyLength;
	iBlank.RecvOneOrMore(aBuffer, 0, status, dummyLength);
	aBuffer.SetLength( dummyLength.Length() );
	User::WaitForRequest(status);	
	if(status != KErrNone) User::Leave(KErrGeneral);
	return dummyLength.Length();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -