利用PLAN进行网络编程
1. ARP 数据包编程
在网络编程中,ARP(地址解析协议)是一个基础且重要的协议。在PLAN编程环境下,ARP数据包的编写涉及到一些特定的服务函数,如 bind 和 retrieveBinding 。 bind 用于向ARP表中添加绑定,如果表已满则会抛出 BindFailed 异常; retrieveBinding 用于查找绑定,如果查找失败则会抛出 NoBinding 异常。
下面是PLAN中编写的ARP数据包函数:
fun ask(l:blob,n:host,m:host): unit =
try
if thisHostIs(m) then
(try
bind(l,n)
handle BindFailed => ();
OnNeighbor(|bind|(retrieveBinding(m),m), n,
getRB(),getSrcDev()))
else
let val pa:blob = retrieveBinding(n) in
bind(l,n)
end
handle NoBinding => ()
当请求者广播这个函数时,本地网络上的每个主机都会调用它。程序首
超级会员免费看
订阅专栏 解锁全文
7905

被折叠的 条评论
为什么被折叠?



