Inet Socket Omnet ++

时间:2017-04-02 22:18:28

标签: sockets omnet++

我在项目中包含了TCPSOcket.h标题。

但是当我尝试使用对象时

TCPSocket mysocket;

并构建项目,收到以下错误:' TCPSocket未在此范围内声明'

有什么建议吗?

感谢。

3 个答案:

答案 0 :(得分:0)

您使用哪个版本的INET?

如果直接在INET中实现代码(位于INET src文件夹中的源文件或对现有INET文件的修改),您是否确保插入了头文件的完整路径?例如,对于INET版本3.5:

#include "inet/transportlayer/contract/tcp/TCPSocket.h"

此行为在当前的OMNeT版本中发生了变化,因为删除了包含文件的深层搜索魔法(在5.1及其测试版和候选版本中),支持包含从项目根目录开始的完整路径。

如果您有一个单独的项目,您是否检查过引用了INET项目?此外,您的包含路径看起来会有所不同,因为与分离的INET项目相比,您的源位于不同的根文件夹中。

您使用的是命名空间吗?如果是这样,你检查了那里的任何不一致吗?

答案 1 :(得分:0)

我使用的是Omnet ++ 5.0

我有一个单独的项目,是的,我在项目的属性中引用了inet项目。

我的项目与INET在同一工作区中。这是我的一些代码,我使用TCP对象:

#include "PC.h"
#include "myHeader_m.h"
#include "TCPSocket.h"

Define_Module(PC);

void PC::initialize()
{
    cMessage * reminder = new cMessage("Interval");
    .....
    .....
    .....
    //TCPSocket msocket = new TCPSocket();
    TCPSocket mysocket;

}

这是makefile中的包含路径

# C++ include paths (with -I)
INCLUDE_PATH = -I../inet/src -I../inet/src/inet/transportlayer/contract/tcp -I. -Iresults

答案 2 :(得分:0)

<div *ngIf="location == '/home'"> This is content for the home page. </div> 使用C ++命名空间INET,所以在你的代码中你应该在类名之前添加namaspace,例如

inet

或者您可以将整个代码放在inet::TCPSocket mysocket; 中,例如:

namespace inet