基于TCP/IP协议的化学专家实时交流系统

来源:互联网 发布:重庆seo服务70is 编辑:程序博客网 时间:2024/04/27 20:23
基于TCP/IP协议的化学专家实时交流系统

赵勇 秦红胜 张卫东 林少凡

摘要:阐述了开发“化学专家实时交流系统”的软、硬件环境和技术要点,介绍了在Windows9x/NT环境下,用Visual C+ +开发Windows Sockets通信程序、实时显示三维分子的情况。
关键词:化学,套接字,Sockets,网络通讯
中图分类号:TP 393

  随着计算机网络在我国、尤其是在高校的普及,它已经成为广大科学工作者进行交流、获取信息的重要工具。因特网为我们打开了实时交流的渠道。本文介绍的是在已经建立的化学信息网站ChemInf的基础上开发设计的基于TCP/IP协议的“化学专家实时交流系统”,力图满足化学家的需求。

1 开发Winows Sockets网络通信程序的软、硬件环境

1.1 硬件环境

  使用“化学专家实时交流系统”,需要一台已经接入互联网的计算机(目前还不支持拨号接入方式,因为拨号方式采用的是动态IP技术)。为了显示真彩的三维分子,需要系统支持16位增强色以上的显示模式。

1.2 操作系统与开发环境

  Windows 9x/NT支持Windows Sockets API,在以下的介绍中,我们将以在Windows 9x环境下的开发为例。编程语言采用了可视化、面向对象技术的Microsoft Visual C++5.0。Visual C++5.0中的Microsoft基类(MFC,即Microsoft Foundation Class)库是一系列C++类,其中封装着为Microsoft Windows操作系统系列编写应用程序的各种功能。在有关套接字方面,Visual C++5.0对原来的Windows Sockets库函数进行了一系列封装,继而产生了CSocket、CSocketFile等类,它们封装着有关Socket的各种功能。

1.3 通信协议

  我们使用的是TCP/IP协议。Windows 9x/NT带有协议。但是,所开发的网络通信应用程序并不能直接与TCP/IP核心打交道,而是与网络应用编程界面Windows Sockets API打交道。Windows Sockets API则可直接与TCP/IP核心进行沟通。
  TCP/IP核心协议连同网络物理介质(如网卡)一起,都是提供网络应用程序间相互通信的设施。之所以选择TCP是因为它是一种基于连接的协议,在文件传输时会先行建立连接,通过连接可确保文件传输的正确性;UDP则是一种无连接的协议,它在传输文件时不会确保传输端的文件能够正确无误的传送到接收端,所以我们没有采用UDP协议。当然,在作网络广播时,UDP协议更有效率。

2 Socket编程模型在化学专家实时交流系统中的应用

  网络通信通常指两台主机或两个进程,通过网络来传递它们之间的数据,这样的过程可以理解为网络的一次对话(Session)。网络对话的每一端就成为网络通信的端点,即网络通信实体的最小单位。当使用Socket接口对网络通信编程时,Socket是网络通信过程中端点的抽象表示。我们采用了客户/服务器模型,具体的流程如下图所示:

t12801.gif (3149 bytes)

3 小结

  实现Windows Sockets应用程序在网上的数据通信,必须在Windows 9x/NT控制面板中的网络配置项里,添加TCP/IP协议,同时给定相应的IP地址,这些IP地址在所建的局域网中,不能有重复,一般要采用C类地址。

服务器端(SERVER)

客户端(CLIENT)
1、构造套接字ser_s11、构造套接字cli_s
2、创建该套接字2.创建核套接字

ser_s1.Create(port);

cli_s.Create();

其国,port为服务器方打开的通信端口号
3、开始监听来自客户机的连接3、客户机方套接字cli_s向服务器方套接字ser_s1发出连接请求:
 

cli_s.Connect(Addr,port);

 其中,Addr是欲连接服务器方套接字地址结构指针,可采用IP地址或机器名。port即打开的端口号,其值与服务器方的一致。
4、构造一个新的套接字ser_s2
5、服务器等待从ser_s2上接受客户连接请求
6、构造一个类CsocketFile的对象file4、构造一个类CSocketFile的对象file
7、构造类CArchive的对象arIn、arOut,以用于数据的收和发。5、构造类Carchive的对象arIn、auOut,以用于数据的收和发。
8、使用arIn和arOut进行收或发数据6、使用arIn和arOut进行发或收数据

arIn>>value; arout<

arOut<>value;

其中,value是所传输的数据,包括原子位置、原子种类以及原子之间的键合关系等等。其中,value是所传输的数据,包括原子位置、原子种类以及原子之间的键合关系等等。
9、摧毁所创建的CSocket、CSocketFile,Carchive等类的对象7、摧毁所创建的CSocket、CSocketFile,Carchive等类的对象

  使用Visual C++5.0进行Windows Sockets应用程序开发,需要注意以下几点:
  (1)服务器方和客户方应用程序都要进行初始化处理,如port(端口)缺省值的设定等。由于我们的“化学专家实时交流系统”是服务器和客户方和综合体(即,可以接收和发送相同的信息),初始化处理更加重要。
  (2)应独立编写通讯模块,把网络通信作为应用程序中的一个模块,有利于称植到其它应用程序。
  (3)尽量避免通讯双方同时发送数据,这样可能造成数据的暂时阻塞。
  目前,该系统基本满足了化学家相互交流的需求,有较强的应用价值,在保证网络有足够的带宽的情况下,能够成功地实现实时数据传输。

作者单位:赵勇(南开大学中心实验室 天津 300071)
     秦红胜(南开大学中心实验室 天津 300071)
     张卫东(南开大学中心实验室 天津 300071)
     林少凡(南开大学中心实验室 天津 300071)

参考文献

[1][美]Microsoft.使用TCP/IP协议的互络互连.曹康,等译,北京:学苑出版社,1994
[2]鲁士文.计算机网络原理与网络技术.北京:机械工业出版社,1996
[3][美]Peter Norton.MFC开发Windows95/NT4应用程序.孙凤英,等译.北京:清华大学出版社,1998
[4][美]David J Kruglinski.Visual C++技术内幕(第四版).潘爱民,等译.北京:清华大学出版社,1999
[5]刘冲,等.INTERNET上的化学信息.计算机辅助教学研究与发展(Ⅱ),暨南大学出版社,1997
[6]刘冲,等.INTERNET化学资源一览.计算机与应用化学.1997,13(增刊)
[7]刘冲,等.化学信息在线服务系统的建立.计算机与应用化学.1997,13(增刊)
[8]陈勇,等.因特网上交互式化学信息数据库的设计与建设.计算机与应用化学,2000,17(1)

 

 




原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 浴巾洗了发硬怎么办 枕巾上的头油怎么办 洗手盆缝隙漏水怎么办 洗手盆裂缝漏水怎么办 洗手盆堵了怎么办 征信账号注册怎么办 注册不了征信号怎么办 阿里巴巴一键铺货到淘宝发货怎么办 淘宝购物的问题怎么办 买家评价被删除怎么办 淘宝订单虚假交易怎么办 被判定虚假物流怎么办 淘宝有虚假交易怎么办 微信辅助不了怎么办 微信验证失败怎么办 淘宝占空间太大怎么办 淘宝占用空间大怎么办 ipad空间不够用怎么办 ipadmini密码忘了怎么办 旧ipad特别卡怎么办 苹果ipad反应慢怎么办 手机垃圾多了怎么办 ipad2内存过低怎么办 苹果平板ipad内存不足怎么办 手机dns配置错误怎么办 蓝牙已停止运行怎么办 ipad看电视闪退怎么办 ipad为什么看电视会闪退怎么办 微淘直播延迟怎么办 手机淘宝进群领金币怎么办 做淘客冲销量停止淘客后怎么办 微信中零钱提现怎么办 淘宝买家不签收怎么办 小龙虾没人下单怎么办 淘宝直播不浮现怎么办 淘宝直播看不了怎么办 理财客户说没钱怎么办 投资不给钱了怎么办 工作中遇到挫折怎么办 手机qq出现异常怎么办 农行卡出现异常怎么办