📄 echoer2.java
字号:
import drcl.comp.Port;
import drcl.inet.InetPacket;
/**
* Example protocol class - echoer2.
*/
public class echoer2 extends drcl.inet.Protocol
{
final static int REQ=1, RPL=2, tos=0;
Port ifport;
Port idport;
public echoer2()
{
super();
}
public echoer2(String id_)
{ super(id_); }
void sendmsg(int type_, double tm_,long src_,long dst_)
{
debug("in sending");
echopkt pkt_ = new echopkt(type_, tm_);
// broadcast(pkt_, src_, 0x7ffffffffffffffeL, true, k, 1L, 0x7ffffffffffffffeL);
//broadcast(pkt_,10,src_,dst_,false/*routerAlert*/, 10/*TTL*/, tos);
forward(pkt_, 10/*size*/, drcl.net.Address.NULL_ADDR/*src*/, dst_,
false/*routerAlert*/, 255/*TTL*/, tos);
debug("in broadcast");
}
public void send_echo_request(long src_,long dst_)
{
debug("Sending an Echo packet to node" + dst_ + "from node " + src_);
sendmsg(REQ, getTime(),src_,dst_);
}
protected void dataArriveAtDownPort(Object data_, Port downPort_)
{
debug("in receive");
InetPacket ipkt_ = (InetPacket)data_;
echopkt pkt_ = (echopkt)ipkt_.getBody();
long src_ = ipkt_.getSource();
if (pkt_.type==RPL)
{
double rtt = getTime() - pkt_.time;
debug("Getting a reply, round-trip time is: " + rtt);
}
else {
debug("Getting a request, sending time is: " + pkt_.time);
}
}
protected void process(Object obj, Port port)
{
debug("in receive");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -