telnetclient.cpp
来自「good examples for omnet++」· C++ 代码 · 共 71 行
CPP
71 行
//
// This file is part of an OMNeT++/OMNEST simulation example.
//
// Copyright (C) 1992-2005 Andras Varga
//
// This file is distributed WITHOUT ANY WARRANTY. See the file
// `license' for details on this and other legal matters.
//
#include <omnetpp.h>
#include "telnetpkt_m.h"
/**
* Simple model of a Telnet client.
*/
class TelnetClient : public cSimpleModule
{
private:
int addr;
int srvAddr;
protected:
virtual void initialize();
virtual void handleMessage(cMessage *msg);
void simulateUserTyping();
void processEcho(TelnetPkt *telnetPkt);
};
Define_Module(TelnetClient);
void TelnetClient::initialize()
{
addr = par("addr");
srvAddr = par("srvAddr");
cMessage *timer = new cMessage("timer");
scheduleAt(simTime()+par("sendIaTime").doubleValue(), timer);
}
void TelnetClient::handleMessage(cMessage *msg)
{
if (msg->isSelfMessage())
{
simulateUserTyping();
scheduleAt(simTime()+par("sendIaTime").doubleValue(), msg);
}
else
{
processEcho(check_and_cast<TelnetPkt *>(msg));
}
}
void TelnetClient::simulateUserTyping()
{
// send telnet packet
TelnetPkt *telnetPkt = new TelnetPkt("x");
telnetPkt->setPayload("x");
telnetPkt->setDestAddress(srvAddr);
telnetPkt->setSrcAddress(addr);
send(telnetPkt,"out");
}
void TelnetClient::processEcho(TelnetPkt *telnetPkt)
{
delete telnetPkt;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?