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

📄 mygateway.cpp

📁 用c++编写的网络通信框架
💻 CPP
字号:
#include "include/MyGateway.h"

CMyGateway::CMyGateway() : CFramework()
{

}

CMyGateway::~CMyGateway()
{

}

BOOL CMyGateway::OnCreateServer(HOSTSTRUCTS& hosts__)
{
	HOSTSTRUCT host;
	::memset(&host, 0, sizeof(host));
	::sprintf(host.addr, "%s", "127.0.0.1");
	::sprintf(host.name, "%s", "A_HOST");
	host.port = 6666;
	hosts__.put(host);
	CFramework::AddApplyHost(host);
	return CFramework::OnCreateServer(hosts__);
}

BOOL CMyGateway::OnCreateClient(HOSTSTRUCTS& hosts__)
{
	HOSTSTRUCT host;
	::memset(&host, 0, sizeof(host));
	host.port = 6000;

	::sprintf(host.addr, "%s", "127.0.0.1");
	::sprintf(host.name, "%s", "B_HOST");
	hosts__.put(host);
	
	return CFramework::OnCreateClient(hosts__);
}

BOOL CMyGateway::OnRecvData(const HOSTSTRUCT& host__, xuwn::MESSAGE& msg)
{
	msg.size.heads = 4;
	msg.size.bodys = 4;

	int rc = ::recv(host__.fd, msg.buffer, msg.size.heads, 0);

	if (rc == msg.size.heads)
		return CFramework::OnRecvData(host__, msg);
	else
		return FALSE;
}

BOOL CMyGateway::OnConnected(const HOSTSTRUCT& host__)
{
	::printf("主机:%s %s请求连接!\n", host__.name, host__.addr);
	return TRUE;
}

void CMyGateway::OnExecuteMessage(const xuwn::MESSAGE& message)
{
	CFramework::OnExecuteMessage(message);

	// 测试用,将收到的消息转发到127.0.0.1:6000端口

	HOSTSTRUCT host__;
	::memset(&host__, 0, sizeof(host__));

	if (0 == CFramework::GetRoute("B_HOST", host__))
	{
		int rc = ::send(host__.fd, message.buffer, message.size.bodys + message.size.heads, 0);
	}
}

⌨️ 快捷键说明

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