平台开发——skynet——③内部服务间通信

int skynet_send(
  struct skynet_context * context,   //
  uint32_t source,                   //可不填,默认为自己
  uint32_t destination,              //发送的目的地址
  int type,                          //消息类型
  int session,						 //
  void * msg,   					 //发送的消息的地址
  size_t sz							 //发送的消息的长度
);

内部服务间通信:
无需响应:skynet.send()
需要响应:skynet.call()
目的地址的接收:skynet.dispatch()

①消息打包与解包

local msg, sz = skynet.pack("zhoudongyu", 24, false) 
local arg1, arg2, arg3 = skynet.unpack(msg, sz)

其中
msg——消息指针地址
sz——消息长度”
“zhoudongyu”, 24, false——都是打算要发送的消息

②向某个服务发送一个消息(无需响应的消息)

发送端:

skynet.send(addr, type, ...)           //...代表要发送的消息(send函数会自动帮你打包)
skynet.rawsend(addr, type, msg, sz)    //msg,sz就是打包好的消息

接收端:

skynet.dispatch
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值