《基于wimsock的网络通信程序设计》由会员分享,可在线阅读,更多相关《基于wimsock的网络通信程序设计(3页珍藏版)》请在金锄头文库上搜索。
1、祖4叮臼j运心仔诊卜户仁! , 9 9 全国仿真技术学术会议论文集 丁!, , 犷_ _ _ _ _ _ _ 。 一 . 一一 、 ,、 一 川13,2 基 于 W in S O C k J pq9 络 i 1A F 1 tiS i t 高 慈 敏 甘 建潮徐玉 斌赵志 诚张 井岗 o g a v 机 城 学 院 系 统 仿 真 与 计 算 机 应 用 研 究 )V F . 0 3 0 0 2 , .典两要介绍 的应用实例- 关.栩Win wc 七 了W i n s o d 的 基本工 作原班, 及网 络通讯设计的 一般方法, 并 给出了W- k在热 连冲 计葬机 仿真爪 眺中 网络通棺热连礼
2、计葬拥份真系眺 1 引亩 客户机护 服务公技术是当今世界上最流行与最具发展 的 技 术 之 一 , 以 之 构 成 的 应 用 系 统 具 有 系 统 结 构 优 化 、 资 派利用率高、 整 体运行速度快的 优点。当 然, 这种高效率 的系统是以其高效率的网络通讯为先决条件的,因此, 产 生了Wi n d o w : 环境下的标准的.1 C P A P网络开发界面, 利 用 S o c k e t 技术开发网 络通讯程序.这在诸如机器人远程 控制、雷达仿真系统等许多领域得到了广泛的应用: 1 2 1 3 1 W i n s o c k 规范定义了 一个T C 即P 网络上开发W in d o
3、 w s 程 序的 接口 标准, 它以以J . 来实现s o c k e t 接口 。 W in s o c k 在W in d o w s 编程 环境下所处的 位2 如图1 所示。 ,W in s o c k 位于T C P A P协议找和应用程序中间, 管理与T C P / I P协议 的 接口. 程序利用 , a 。 皿 兀 9 及其对底层硬件 ( 申 行口 或网 卡) 的 控制, 来实现网 络通讯. 利 用 W in s o c k编制网 络通 讯程序,依技于程序建立的网 络连接 类型( 面向 连接的还 是无连接的) 和程序起的作用( 客户进程还是 服务翻进程) 。 目 前应用较广泛的
4、版本是Win s o c k 2 .0 . 2 Win s o c k 简介 Wi nd o w s S o c k e t s 是Mic r o s o ft Win d o w s 的网络程序 设 计 接口 , 它 是 从U N IX系 统 上B e r k e le y S o c k e t s 扩 展 而 来的. W in d o w s S o c k e ts 在继承了. Be r k e le y S o c k e . 主要 特 征的蓦础上,又对它进行了 重要的扩充, 增加了 一些符合 Win d o w s 环境消息骆动特性的函数。 Wi n d o w s 环境与 U N
5、 IX 环境有很多的不同, 它是基 于消息传通机制的非抢先式多任务操作系统。 W i n d o w s 内核负责把消息队列中 每条消息转发给特定的处理程序, 处理程序接收到消息后,从 Wi d o w ,内核接过系统控制 权,根据消息内容进行相应处理, 直到处理完毕才把系统 控制权还给W i n d o w : 内核。而传统的S o c k e ts采用的是同 步方式,即阻塞的传物方式,这样,一旦 R 。 目() 被阻 塞, C P U控制权会彼应用程序长期占用。 W i n d o w s内核 将得不到控制 权。 就无法完成对消息的调度工 作,出 现死 机。扩充的S o c k e ts
6、A N中提供了 基于梢息的对网络事件 异步访问的函数,充分利用了W i n d o w .的优点,其中. 主要的是异步多路复用调用。等用户开辟了一个 S o c k e t s 口 号 后, 对 之 使用W S A A s y n e S e le c t ( ) , 则自 动 使 之 成为 异步使用方式。 目Iw 加 . 村 k 在Win d o w 。 环境下的位里 3 W i n s o d c 幼怪的 蕊本方法 墓于T C 印P协议的应用通常采用客户服务器模式, 必须由客户和服务县两个进程共同完成应用任务。 客户和 服务器之间的数据传输采用面向连接 ( 如T C P ) 或无连 接 (
7、 如S)的 通讯协议14 1 *木文由国家“ 九五. 科技攻关项目 资助 ( 9 5 - 5 2 8 -01 -0 1 -0 3 D ) 高盆敏,讲师,1 9 9 2年毕业于湖南大学电气系.获学士学位.1 9 9 8年毕业于太原重型机城学院计算机系,获硕上学位. 现于西安交通大学攻 读博上学位,研究方向:复杂人系统的建校与仿真,P e tr i 网等。 一7 A8 一 3 - 1 面向连接协议的s o c ke t 调用 服务器必须首先启 动, 直 到它执行完a c c e p t ()调用, 进入等特状态后. 方能接收客户请求.如图2 所示,假如 客户在此之前己启动,则 训伙d () 将返回
8、出错代码, 连接不成功. 阻., 娜待容户 连接偏录 班立边该 .务月城 处理.务 偏求 妞 山 目 ) 口务 应答 圈 2 3 - 2 无连摘协议的. o c te t 调用 无连接协议的取 祀 阮. 调用如图3所示。无连接服务 器也 必须 先启 动。 否则客户请求传不到 服务 进程。无 连接 客户不调用 o n n e c 宜 0,因 此在数据发送之前,客户与服 务器之间尚未建立完全相关。发送数据时,发送方除指定 本 地 套 接 字 号 外 , 还 需 指 定 接 受 方 套 接 字 号 , 从 西 在 她 据 户机发送的设定数据及人工干预等数据,并 根据类型的不 同,执行相应的模型运算,
9、 每隔一定时间 将运算结果送回 客户机显示. 客户机和服务器之间的数据传输采用面向连接的通 讯协议。 4 - ,服 务 . 通 伯 稗 序 设 计 服务器程序设计语言采用V i s u a l C 十 十2 刀 ,服务器程 序要先于客户程序启动.并对建立的S O C K E T端口 进行 侦听。等待客户发送请求,如果客户方服务餐通信程序建 立此客户端的数据连接,接收其发送的效据。并根据类型 的不同, 执行相应的程序。为了在客户计算机上实现轧制 过程的动态显示, 服务 器方的模型 计算结架储要 适时地发 往客户方,但若将模型机每次运算的结果都送往客户机仿 真速度将受到大大的形晌, 而且也不必要,
10、因此,在服务 器方采用了定时器技术,即申请一个定时 鉴, s c t n n u n c r ( ) ,设定时间为 M a in t i t n m e r( 单位 爬 ) ,则每隔 M a in t i m u m r 根据定时器的消息 WM _ T I MME R给客户端 发送一次数据, 42 客户通值租序设计 过程级计算机的 仿真软件采用 V i s u a l B a s ic 5 .0实 现,而V B 5 .0 A c t i v e X类控件中的WINS O C K控件,提 供了访问 T C P网络服务鉴的方便途径,而且在编写客户 和服务器应用程序时,不必了 解 T C P的细节或
11、调用低级 的 WI N S O C K A P I s 。而通过设it控件的属性并调用其方 法就可实现连接和双向数据交换,针对创建客户应用程 , 必须知道与之连接的计算机名或者 护 地址,可以 通 R e m o t e H o s t 属性来进行设里, 控件 序过燕 收发过程中动态地建立全相关。 瓜务 .方移 户方 它接收数据。同时还要 属性来进行设 里 , 最 后 侧 用c a n m x l 方 法 、 日 3 4 应用实例 在作者开发的热连轧计算机仿真系统中采用 C / S模 式, 在两台徽机上对整个热连轧生产过程进行了 计算机仿 真。其中一台为服务器 ( 也称模型仿真计算机) ,另一
12、台 为客户机 ( 也称过程级仿真计算机) 。服务器程序接收客 建立连挂后. 任何一方计抹机都可以收发数据。为 了 发 送 数 据可 调 用S e n d D a l . 方法, 在S e n d D a t . 方 法调 用之前, 应先 将钾待 发 傲招进行打包,即 :定义一 个数 据级冲区, 在 旅 绷扭冲区 中, 将要发送的 数 据间隔 空格 进 行 汀包 , 并 加入 标 识头, 以 区 分 发 送的 不 同 的 数 据 类 梦 垦 , 形 式 如 下 : 标 识 头 导 数 据卜 空 格 + 致 据2 + 空 格 +. 、 超沙 洛 十 数据n .当接收效据时会发生D 到 泊人 币v
13、吐事件. 调 用。 ., 人 州 , 目书 种 内 的 . 司 、 . 方 法 就可 获 取 数 据, 并将其存储在变体类型的变t中,然后将接收的数据存 放在数据级冲区中,进行拆包,拆包时,一定要按照数 据打包的格式,利用 V B中的函数可以方便的实现。将 数 据 斌 给 不同 的 变 量. 这样 就 可以 实 现 将 过 程 级 计 算 机 的工艺参数设定值发送给模型仿真计算机和从模型仿真 计算机接收轧制过程的工艺参数的反馈值.并在相应的 一2 4 9 显示点显示出来。更加完善了热连轧生产过程的计算机 仿真系统。 5 结束语 由作者开发的热连轧生产过程计算机仿真系统己 于 1 9 9 8 年
14、 1 2月 通过了国家机械工业局专家组的脸收。其网 络通讯软件运行良 好,保障了整个仿真系统的实时性. 今考文献 t 姜 淑菊4.“/1P协 议的通讯 fi序设i t 计 算“ 11 1 , 1 9 9 7 . 3 , V 0 1 . 1 7 ( 2 ) . 2 陈 一 民等, 网络D D 8和w“ . I . w 9 s a c a e l 在机器人远程控制中的应 用. 计 算机1 一 程, 1 9 9 8 从V o l .2 4 ( 9 ) . 3 张海等 动态数据交换技术在仿真软件中的应用. 计算机应 用, 1 9 9 7 . 1 ,V O L . 1 7 ( 1 ) . 4 蔡皖东 .
15、 计算机网络技术_ 西安电子 科技大学出 版社., 1 9 9 8 .2 . D e s i g n o f N e t w o r k C o m m u n i c a t i o n P r o g r a m B a s e d o n Wi n s o c k G a o h u i f n i n Z e n g j i a n c h a o X u y u b i n Z h a o z h i c h e n g Z h a n g j in g g a n g ( D i v i s i o n o f s y s te m s i m u l a t i o n a n
16、d c o m p u te r a 州i c a t i o n , T a i y u a n h e a v y m a c h i n e r y i n s t i tu t e , T i y u a n , 0 3 0 0 2 4 ) A B S T R A C T T h is p a p e r b r i e fl y i n t ro d u c e d血 b a s i c画n c i p le o f W i n s o c k , a n dd e s i g n m e t h o d o f net w o r k c o m m u n i c a t io n p ro g r a m , t h e n i t s 邢 创ic a t io n i n t h e c o m p u te r s im u l a t i o n s y s t e m o f h o t s t 向m i ll i s p ro v id e d . K E Y WO R D S W i n s o c