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

基于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<<value;

arOut<<value;arIn>>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)

 

 

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
<p style="color:#666666;"> <span style="font-size:14px;">本门课程重实战,将基础知识拆解到项目里,让你在项目情境里学知识。</span> </p> <p style="color:#666666;"> <span style="font-size:14px;">这样学习方式能让你保持兴趣、充满动力,时刻知道学东西能用在哪、能怎么用。</span> </p> <p style="color:#666666;"> <span style="font-size:14px;">平时不明白知识点,放在项目里去理解就恍然大悟了。</span> </p> <p style="color:#666666;"> <span></span> </p> <p style="color:#666666;"> <span style="font-size:14px;"> </span> </p> <p style="color:#666666;"> <span style="color:#FF0000;font-size:14px;"><strong>一、融汇贯通</strong></span> </p> <p style="color:#666666;"> <span style="font-size:14px;">本视频采用了前后端分离开发模式,前端使用Vue.js+Element UI实现了Web页面呈现,后端使用Python Django框架实现了数据访问接口,前端通过Axios访问后端接口获得数据。在学习完本章节后,真正理解前后端各自承担工作。</span> </p> <p style="color:#666666;"> <span style="font-size:14px;"> </span> </p> <p style="color:#666666;"> <span style="color:#FF0000;font-size:14px;"><strong>二、贴近实战</strong></span> </p> <p style="color:#666666;"> <span style="font-size:14px;">本系列课程为练手项目实战:学生管理系统v4.0开发,项目包含了如下几个内容:项目总体介绍、基本功能演示、Vuejs初始化、Element UI使用、在Django中实现针对数据增删改查接口、在Vuejs中实现前端增删改查调用、实现文件上传、实现表格分页、实现导出数据到Excel、实现通过Excel导入数据、实现针对表格批量化操作等等,所有功能都通过演示完成、贴近了实战</span> </p> <p style="color:#666666;"> <span style="font-size:14px;"> </span> </p> <p style="color:#666666;"> <span style="color:#FF0000;font-size:14px;"><strong>三、课程亮点</strong></span> </p> <p style="color:#666666;"> <span style="font-size:14px;">在本案例中,最大亮点在于前后端做了分离,真正理解前后端各自承担工作。前端如何和后端交互</span> </p> <p style="color:#666666;"> <span style="font-size:14px;"> </span> </p> <p style="color:#666666;"> <span style="color:#FF0000;font-size:14px;"><strong>适合人群:</strong></span> </p> <p style="color:#666666;"> <span style="font-size:14px;">1、有Python语言基础、web前端基础,想要深入学习Python Web框架朋友;</span> </p> <p style="color:#666666;"> <span style="font-size:14px;">2、有Django基础,但是想学习企业级项目实战朋友;</span> </p> <p style="color:#666666;"> <span style="font-size:14px;">3、有MySQL数据库基础朋友</span> </p> <p style="color:#666666;"> <span style="font-size:14px;"> </span> </p> <p style="color:#666666;"> <span style="font-size:14px;"><img alt="" src="https://img-bss.csdnimg.cn/202009070752197496.png" /><br /> </span> </p> <p style="color:#666666;"> <span style="font-size:14px;"><br /> </span> </p>
<div style="color:rgba(0,0,0,.75);"> <span style="color:#4d4d4d;"> </span> <div style="color:rgba(0,0,0,.75);"> <span style="color:#4d4d4d;"> </span> <div style="color:rgba(0,0,0,.75);"> <div style="color:rgba(0,0,0,.75);"> <span style="color:#4d4d4d;">当前课程中商城项目实战源码是我发布在 GitHub 上开源项目 newbee-mall (新蜂商城),目前已有 6300 多个 star,</span><span style="color:#4d4d4d;">本课程是一个 Spring Boot 技术栈实战类课程,课程共分为 3 大部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 商城项目功能讲解,让大家实际操作并实践上手一个大型线上商城项目,并学习到一定开发经验以及其中开发技巧。<br /> 商城项目所涉及功能结构图整理如下:<br /> </span> </div> <div style="color:rgba(0,0,0,.75);">   </div> <div style="color:rgba(0,0,0,.75);"> <p style="color:#4d4d4d;"> <img alt="modules" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3N0b3JlL25ld2JlZS1tYWxsLXMucG5n?x-oss-process=image/format,png" /> </p> </div> <p style="color:rgba(0,0,0,.75);"> <strong><span style="color:#e53333;">课程特色</span></strong> </p> <p style="color:rgba(0,0,0,.75);">   </p> <div style="color:rgba(0,0,0,.75);">   </div> <div style="color:rgba(0,0,0,.75);"> <ul> <li> 对新手开发者十分友好,无需复杂操作步骤,仅需 2 秒就可以启动这个完整商城项目 </li> <li> 最终实战项目是一个企业级别 Spring Boot 大型项目,对于各个阶段 Java 开发者都是极佳选择 </li> <li> 实践项目页面美观且实用,交互效果完美 </li> <li> 教程详细开发教程详细完整、文档资源齐全 </li> <li> 代码+讲解+演示网站全方位保证,向 Hello World 教程说拜拜 </li> <li> 技术栈新颖且知识点丰富,学习后可以提升大家对于知识理解和掌握,可以进一步提升你市场竞争力 </li> </ul> </div> <p style="color:rgba(0,0,0,.75);">   </p> <p style="color:rgba(0,0,0,.75);"> <span style="color:#e53333;">课程预览</span> </p> <p style="color:rgba(0,0,0,.75);">   </p> <div style="color:rgba(0,0,0,.75);">   </div> <div style="color:rgba(0,0,0,.75);"> <p style="color:#4d4d4d;"> 以下为商城项目页面和功能展示,分别为: </p> </div> <div style="color:rgba(0,0,0,.75);"> <ul> <li> 商城首页 1<br /> <img alt="" src="https://img-bss.csdnimg.cn/202103050347585499.gif" /> </li> <li> 商城首页 2<br /> <img alt="" src="https://img-bss.csdn.net/202005181054413605.png" /> </li> <li>   </li> <li> 购物车<br /> <img alt="cart" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3QvY2FydC5wbmc?x-oss-process=image/format,png" /> </li> <li> 订单结算<br /> <img alt="settle" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3Qvc2V0dGxlLnBuZw?x-oss-process=image/format,png" /> </li> <li> 订单列表<br /> <img alt="orders" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3Qvb3JkZXJzLnBuZw?x-oss-process=image/format,png" /> </li> <li> 支付页面<br /> <img alt="" src="https://img-bss.csdn.net/201909280301493716.jpg" /> </li> <li> 后台管理系统登录页<br /> <img alt="login" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3QvbWFuYWdlLWxvZ2luLnBuZw?x-oss-process=image/format,png" /> </li> <li> 商品管理<br /> <img alt="goods" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3QvbWFuYWdlLWdvb2RzLnBuZw?x-oss-process=image/format,png" /> </li> <li> 商品编辑<br /> <img alt="" src="https://img-bss.csdnimg.cn/202103050348242799.png" /> </li> </ul> </div> </div> </div> </div>
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值