​​​​

  1. Socket接口模块实现方案
  1. 功能描述

Socket接口模快实现OPNET系统级仿真平台与外部软件之间基于Socket通信,包括建立连接、数据传送,模块支持端口及IP地址设置。

  1. 实现流程

利用OPNET 开发接口模块,实现Socket 双向数据通信,包括Socket 接口节点模型、Socket 接口协议模型、Socket 控制模块三部分。

接口节点模型可以实现Socket 相关参数的配置,包括开启端口、ip地址配置、轮询时间设置。

接口协议模型利用OPNET 核心函数及外部Socket 操作函数实现。外部Socket 程序通过接口模块与OPNET 仿真进行数据交互,实现仿真运行控制、参数传递操作。

项目组利用OPNET Modeler 18.0仿真软件建立仿真模型,实现与外部Microsoft Visual Studio 2010进行基于Socket的通信,实现客户端与服务器之间的建立连接、数据传送,模块支持端口及IP地址设置。

具体如下:

1、使用OPNET Modeler 18.0仿真软件建立服务器(Socket_server)的网络模型与VS 2010建立的客户端(Client)进行Socket通信操作;

2、使用OPNET Modeler 18.0仿真软件建立客户端(Socket_client)的网络模型与VS 2010建立的服务器(Server)进行Socket通信操作;

  1.   使用软件

Modeler 18.0仿真软件

Microsoft Visual Studio 2010

  1. Socket接口模块具体实现步骤
  1. OPNET搭建Server仿真模型与VS搭建的Client进行通信 

步骤如下:

(1)使用OPNET Modeler 18.0创建一个服务器(Socket_server)的网络模型,如下图 2所示:

图 2  网络模型

其中,Socket_server用来实现与外部VS建立的客户端(Client)进行Socket通信;Profile Config用来配置通信端口号和轮询时间。节点“0”、“1”和“2”实现内部节点的位置信息更新,在Socket_server网关收到消息后,会通过远程中断的方式来控制、反馈内部仿真节点位置信息更新操作。右击仿真场景中的Profile Config,左击选择Edit Attributes选项, 在弹出的Attributes窗口中,点击Dest_Port进行端口号Value的设置,点击tv_sec和tv_usec进行对Socket服务器轮询时间的设置,其中tv_sec和tv_usec分别表示秒和毫秒。如下图 3所示:

图 3 Attributes设置

(2)建立服务器Server的节点模型,如下图 4所示:

图 4服务器Server节点模型

(3)建立服务器Server的进程模型,如下图 5所示:

图 5服务器Socket_server进程模型

其中,在进程模型的编辑头块代码“HB”中写入实现Socket通信的头文件,在编辑函数块代码“FB”写入实现Socket通信的源代码。

(4)使用VS 2010编写外部客户端(Client)程序,生成VS_Client.exe可执行文件与OPNET进行Socket通信。该解决方案可以实现对不同类型数据的发送,并能对仿真运行进行控制。

“send X”(X表示用户想要发送到OPNET服务器的字符串)命令可以实现对字符串X的发送;

“add X Y Z”(X代表某一节点,Y和Z分别代表期待移动到的纬度和经度)命令为节点的移动指明了对象和相应的经纬度;

quit命令可以实现对OPNET服务器的关闭,使连接中断;

其中VS客户端的解决方案如下图 6所示:

图 6  VS客户端的解决方案

(5)开启Socket服务器:右击仿真场景中Profile Config进行端口号和轮询时间的设置,运行仿真即开启Socket服务器。

(6)开启Socket客户端: 运行步骤(4)生成的VS_Client.exe执行文件即开启Socket客户端,按照提示输入IP地址和端口号与OPNET搭建的Socket服务器建立连接,然后进行数据传输。

实现功能:OPNET搭建的服务器仿真场景中,节点Profile Config可以实现对端口号和轮询时间的设置;节点server可以实现与外部VS程序进行Socket通信;外部程序VS 2010建立的Client客户端可以实现输入IP地址和端口号与OPNET搭建的Socket服务器建立连接,然后进行数据传输。开始时外部的VS(客户端)发送数据(节点的位置信息)到OPNET的网关Socket_server,网关Socket_server收到数据以后会利用远程中断的方式使节点(0、1或2)移动,而在网关调用远程中断之后会立刻发送位置信息到外部的VS。

  1. OPNET搭建Client仿真模型与VS搭建的Server进行通信 

步骤如下:

(1)使用OPNET Modeler 18.0创建一个客户端(Socket_client)的网络模型,如下图 7所示:

图 7 网络模型

其中,Client用来实现与外部VS建立的服务器(Server)进行Socket通信;Profile Config用来配置端口号和IP地址。节点“0”、“1”和“2”实现内部节点的位置信息更新,在Socket_server网关收到消息后,会通过远程中断的方式来控制、反馈内部仿真节点位置信息更新操作。右击仿真场景中的Profile Config,左击选择Edit Attributes选项, 在弹出的Attributes窗口中,点击Dest_IP_Address进行IP地址的设置,点击Dest_Port进行端口号Value的设置。如下图 8所示:

图 8 Attributes设置

(2)建立客户端(Client)的节点模型,如下图 9所示:

图 9 客户端(Client)节点模型

(3)建立服客户端(Client)的进程模型,如下图 10所示:

10  客户端(Socket_client)进程模型

(4)使用VS 2010编写外部服务器(Server)程序,生成VS_Server.exe可执行文件与OPNET进行Socket通信。该解决方案可以实现对不同类型数据的发送,并能对仿真运行进行控制。

“send X”(X表示用户想要发送到OPNET客户端的字符串)命令可以实现对字符串X的发送;

“add a b”命令指明了移动的节点对象以及相应的位置坐标;

“quit”命令可以实现对OPNET客户端的关闭,使连接中断;

其中VS服务器的解决方案如下图 11所示:

图 11  VS服务器的解决方案

(5)开启OPNET Socket客户端:右击仿真场景中Profile Config进行端口号和IP地址的设置,运行仿真即开启OPNET Socket客户端。

(6)开启VS服务器:运行步骤(4)生成的VS_Server.exe执行文件即开启Socket服务器,按照提示输入端口号与OPNET搭建的Socket客户端建立连接,然后进行数据传输。

实现功能:OPNET搭建的客户端仿真场景中,节点Profile Config可以实现对端口号和IP地址的设置;节点Socket_client可以实现与外部VS程序进行Socket通信;外部程序VS 2010建立的Server服务器可以实现输入端口号与OPNET搭建的Socket客户端建立连接,然后进行数据传输;可以实现指定节点的移动,使指定节点按照给定的位置移动。开始时外部的VS(服务器)发送数据(节点的位置信息)到OPNET的网关Socket_client,网关Socket_server收到数据以后会利用远程中断的方式使节点(0、1或2)移动,而在网关调用远程中断之后会立刻发送位置信息到外部的VS。

opnet中SOCKET接口开发相关推荐

  1. socket接口调用 java_Java中socket接口调用(示例代码)

    最近一个项目中接口通讯这一块主要是调用银联系统的socket接口,我方是客户端,即发送请求接收返回报文的一方.在贴代码之前,还是要了解一下关于socket的基础知识. Socket的基本概念 1.建立 ...

  2. java socket调用接口_Java中socket接口调用

    最近一个项目中接口通讯这一块主要是调用银联系统的socket接口,我方是客户端,即发送请求接收返回报文的一方.在贴代码之前,还是要了解一下关于socket的基础知识. Socket的基本概念 1.建立 ...

  3. python中restful接口开发实例_Python RESTful接口开发02

    什么是RESTful RESTful是一种设计思想,一种风格. RESTful主要包括 资源 和 对资源的操作. 资源: 对实体的抽象,图书.音乐.电影.学生等都属于资源. 对资源的操作: ===== ...

  4. 说说第三方支付接口开发及开发中遇到的坑爹问题

    前言 最近在做公司的支付接口,从微信支付到各种第三方的支付接口,还有点卡等支付,微信支付文档相对比较详细,虽然也不少坑,被各路开发人员吐槽,但是填的人多啊,所以是最好开发的,但是公司还有用到一些第三方 ...

  5. api接口加密_谈谈API接口开发中的安全性如何解决

    如今各种API接口层出不穷,一个API的好与不好可以从很多方面来考量,其中"安全性"就是一个API接口最基本也是最重要的一个特点.本文就来跟大家聊聊关于API接口开发的安全性问题. ...

  6. api 接口开发理论 在php中调用接口以及编写接口

    如: http://localhost/openUser.php?act=get_user_list&type=json 在这里openUser.php相当于一个接口,其中get_user_l ...

  7. Socket编程中具体接口的用法

    Socket的函数很多,Windows中头文件是Winsock2.h,下面介绍经常使用的几个. 一.Socket()接口 SOCKETWSAAPI socket(_In_ int af,_In_ in ...

  8. 亚马逊电商数据自动化管理接口平台JAVA SP-API接口开发(中)

    亚马逊电商数据自动化管理接口平台JAVA SP-API接口开发(中) 重要说明 本文章为亚马逊系列其中的一篇,具体详见 主页 中亚马逊分类 该系列项目均为[CSDN轻夏]原创,未经允许禁止转载 如有疑 ...

  9. 第三方支付接口开发及开发中遇到的坑爹问题

    前言 最近在做公司的支付接口,从微信支付到各种第三方的支付接口,还有点卡等支付,微信支付文档相对比较详细,虽然也不少坑,被各路开发人员吐槽,但是填的人多啊,所以是最好开发的,但是公司还有用到一些第三方 ...

  10. 软件项目成本评估中,关于接口开发的工作量评估有什么标准方法吗?

    问:软件项目成本评估中,关于接口开发的工作量评估有什么标准方法吗? 答:如果是外部接口,就正常识别功能点即可,接口通常对应事务功能,但有可能有变化的数据功能.(来源:中基数联)

最新文章

  1. 【OpenCV 4开发详解】漫水填充法
  2. uhttpd 架构调用细节之lua
  3. java学习一 path与classpath
  4. FactoryBean的使用--转
  5. 10个Eclipse珍藏插件推荐
  6. 12月中国域名服务商Top20市场份额解析(图)
  7. Hi3531与Hi3520 GPIO口的对比及驱动的修改
  8. php多维数组交集,求数组差/交集函数-php数组函数(二)
  9. win10可用空间变成未分配_系统C盘磁盘空间不够用的解决办法
  10. Knowledge Distillation(知识蒸馏)Review--20篇paper回顾
  11. 微信开发者工具的最详细步骤如下:
  12. 计算机软件实习每日学习打卡(1)20201130
  13. nginx: [warn] the “user“ directive makes sense only if the master process runs with super-user privi
  14. GitLab CI 介绍
  15. 2020-06-08
  16. python类中最大的_python类的学习笔记(一)
  17. memset(G, 0x3f, sizeof(G))涵义
  18. 使用html5制作表格
  19. android按钮输出音频,android – 如何点击按钮播放声音
  20. 离散数学_十章-图 ( 5 ):连通性 - 下

热门文章

  1. WIN7下安装IIS
  2. 【Web漏洞探索】跨站请求伪造漏洞
  3. keil5.34设置GB2312编码后,字体不能改
  4. 原始对偶方法——转载
  5. BIM标准丨深圳市住房和建设局关于印发《房屋建筑工程招标投标建筑信息模型技术应用标准》
  6. Proe/Creo产品结构设计概述
  7. C语言知识点复习梳理
  8. Git遇到的问题:This is not a valid source path/URL
  9. 计算机网络知识点汇总(王道)
  10. Java-输出100以内的质数