Nebula2探秘09-IpcPeer(UDP)

本文介绍Nebula2框架中使用UDP实现进程间通信(IpcPeer)的方法。通过示例代码展示了如何初始化通信端点、发送及接收消息等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Nebula2探秘09-IpcPeer(UDP)

happykevins文

Nebula2有内置了两种IPC(进程间通讯)的解决方案:IpcServer(UDP)和IpcPeer(TCP);下面一段代码展示如何使用Nebula2的IpcPeer。

/****************************************************************************/
/*Nebula2-Tutorial09*/
/*IpcPeer-UsingUDP*/
/*author:happykevins*/
/****************************************************************************/

///----------------------------------------------------------------------------
///+必要头文件

//nebula2includes
#include"kernel/nkernelserver.h"
#include
"kernel/nipcpeer.h"

///-必要头文件
///----------------------------------------------------------------------------

///----------------------------------------------------------------------------
///+链接库
#pragmacomment(lib,"wsock32.lib")
#pragmacomment(lib,"d_nkernel.lib")
///-链接库
///----------------------------------------------------------------------------

///----------------------------------------------------------------------------
///+Application
intmain(intargc,constchar**argv)
{
///创建KernelServer
nKernelServer*ks=n_new(nKernelServer);

///启动网络模块
WSADATAwsaData;
interr=WSAStartup(MAKEWORD(2,2),&wsaData);
if(err!=0){
n_printf(
"无法启动网络模块!");
return0;
}

///初始化两个Peer用于发送和接收数据
nIpcAddressaddr1("self",7111);
nIpcAddressaddr2(
"self",7222);
nIpcPeerpeer1(
&addr1,nIpcPeer::CanSend);
nIpcPeerpeer2(
&addr2,nIpcPeer::CanReceive);


///测试发送5条信息
for(inti=1;i<=5;i++)
{
nIpcBuffersend(
256);
nIpcBufferrecv(
256);
nIpcAddressfrom;

///发送信息
send.SetString("HelloPeer2!I'mPeer1!");
peer1.SendTo(addr2,send);

///Sleep一段时间确保收到消息
n_sleep(3.0);

///接收消息
if(peer2.ReceiveFrom(recv,from))
{
if(recv.IsValidString())
{
n_printf(
"]ReceiveaMessagefrom%s:%d ",from.GetHostName(),from.GetPortNum());
n_printf(
"]MessageContent:%s ",recv.GetString());
}
}
}

///关闭网络模块
WSACleanup();

n_printf(
"按任意键退出...");

///销毁KernelServer
n_delete(ks);

getchar();
return0;
}
///-Application
///----------------------------------------------------------------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值