简介:在大伙房水库监测预警平台的开发过程中,为了节约开发时间并优化程序结构、提高运行效率,综合利用C#这种现代语言高效开发的特点和FORTRAN这种古老计算机语言描述工程算法准确、严谨的优势。本文讨论了FORTRAN和C#混合编程的特点,研究了C#与FORTRAN混合编程的实现方法。关键词FORTRAN;混合编程;工程计算;DLL中图分类号TP314文献标识码A文章编号1007-9599(2010)04-0000-01ImplementationofFORTRAN&C#MixingProgrammingagainstLargekitchenWarningPlatformDevelopmentShangTao,FuJinxiang,MaXingyuan,TangYulan(ShenyangArchitectureUniversity,Shenyang110168,China)AbstractDuringthedevelopmentoflargekitchenResMonitoringandWarningPlatform,inordertosavedevelopmenttimeandimproveoperationefficiency,usingC#LanguagewhichisthemoderncomputerlanguagealsohasthecharacteristicsofefficientdevelopmentandFORTRANLanguagewhichcanrigorousandaccuratedescriptionofengineeringalgorithmtogetherisnecessary.ThispaperhasdiscussedthecharacteristicsofmixingprogrammingwithC#andFORTRANlanguage.KeywordsFORTRAN;Mixingprogramming;Engineeringcalculation;DLL一、FORTRAN与C#语言的发展及优势以大伙房水库监测预警平台的开发为例。平台需要采用大量先进的计算机编程技术,应用大规模数据库,提供可靠的安全保障,优秀的网络访问能力。这就需要构建平台的编程语言能完整简洁地支持当今最新的编程技术。C#语言就是这样一种语言,作为微软首推的编程语言,C#几乎支持所有最新的编程技术提供了极高的开发效率5。但是该平台又有着显著的工程计算软件的特点,需要严谨的科学计算语言对算法进行描述,同时有许多经过多年工程实践积累的工程计算代码可以被重用。FORTRAN语言最早被应用在工程开发之中,同时在FORTRAN语言50多年的发展中,积累了大量的优秀正确的代码。所以研究C#语言与FORTRAN的混合编程在该项目中的开发中有着重要的意义。(一)FORTRAN语言的发展及优势FORTRAN在数值计算领域有其独有的优势,首先它是最早的高级语言,有大量优秀正确可靠的源代码可以使用,如果能充分利用FORTRAN源代码可以大量节约工程软件设计开发的时间。FORTRAN语言有更为严格的语法,支持直接对数组和复数进行计算,非常适合严谨的科学计算领域1-3。(二)C#语言的发展及优势微软在推出.NETFramework第一版时推出的新语言C#,派生于C的简洁语法,继承了C++语言的灵活性,并且支持快速开发,随着C#3.0版本的发布,C#作为微软公司建议的开发语言,已经受到越来越多的程序开发人员的青睐5。二、FORTRAN与C#混合编程的方法(一)命名约定的一致由于C#语言是严格区分大小写的,而FORTRAN在默认情况下不区分大小写,如果不解决命名一致问题就会导致链接失败。FORTRAN的缺省方式是使符号名在OBJ文件中变成大写,在C#中调用一个缺省的子例程时用一个纯大写的名称生成调用就可以成功publicstaticexternvoidDLLTEST;(二)参数传递一致因为C#默认是值传递,而FORTRAN默认是引用传递。我们在参数传递中必须保持传递的一致性。简单的方法是使用C#的关键字ref,将C#的参数传递类型定义为引用类型publicstaticexternvoidDLLTEST(refinta,refintb);(三)数组参数传递在传递数组参数时,需要周全地考虑行和列的储存位置对调的问题5。还应注意,C#的数组下标从0开始,而FORTRAN的数组下标默认从1开始。如在C#中定义数组A34,共20个元素;同样的定义A(3,4)在FORTRAN中共12个元素1-3。并且进行数组传递还要注意,只需要传递数组的首地址即可,DLL需要的是数组的起始位置。三、FORTRAN与C#混合编程的实现下面试写水库监测预警平台中一个模型计算程序来说明FORTRAN和C#在混合编程的实际应用。启动VisualStudio,选择IntelVisualFortranLibrary中的Dynamic-linkLibrary,并给项目命名。新建“FortranFile”项,并给文件命名。然后在该文件中书写算法代码。编译完成后,在该项目的debug子目录下找到生成的dll文件。新建VisualC#Windows窗体应用程序。并给项目命名,将生成的dll文件拷贝到新项目的debug目录下。在进行连接之前需要在C#中增加对动态链接库操作的类的引用usingSystem.Windows.Forms;usingSystem.Windows.InteropServices;声明外部函数的部分代码publicpartialclassForm1Form{DllImport("dlltest.dll")publicstaticexternvoidFORDLL(reffloatV,reffloatQIN,reffloatBOD,...);...之后就可以对FORTRAN编写的外部函数进行调用,得到正确的结果。四、结论经过本文的讨论,可以看到运用FORTRAN与C#混合编程可以容易地实现。平台的代码极大的缩短,并且可以方便地重用FORTRAN语言的优秀代码,大大缩短开发时间,并且提高程序的执行效率。参考文献1司岩,周福才.FORTRAN程序设计基础J.大连理工大学出版社,1996,52刘卫国,蔡旭辉.FORTRAN90程序设计教程J.人民邮电大学出版社,2003,23张晓霞,田秀萍.Fortran90程序设计教程J.兵器工业出版社,2005,104Nagel.C等著.黄静译.C#高级编程J.清华大学出版社,2008,105周涛,郭占元,郭向荣.Fortran与C#混合编程在土木工程计算中的应用J.中南大学,2009,3
简介:随着局域网络系统的大量使用,针对网络的病毒种类日益增多,ARP攻击现象十分突出,对网络安全构成极大的威胁。如何有效的防范和清除计算机病毒,是保证计算机网络系统正常运行所面临的最大问题。关键词局域网;病毒;ARP攻击;防范策略中图分类号TP393.1文献标识码A文章编号1007-9599(2010)04-0000-02LANSecurityStrategyTangMin,LiaoShidong(ChongqingIndustryTechnologyCollege,Chongqing400042,China)AbstractWiththewideuseoflocalareanetwork,networkvirusincreasinglyprominent,thephenomenonofARPattackonnetworksecurityposeagreatthreat.Howtoeffectivelypreventandeliminatethevirusisthebiggestproblemfacingtoguaranteethenormaloperationofthecomputernetworksystem.KeywordsLAN;Viruses;ARPattack;Preventionstrategies近年来,随着信息技术的不断发展,由于局域网具有网络资源共享等诸多优点,在人们日常的工作和生活中扮演着越来越重要的角色,学校和办公场所组建局域网的情况越来越多。但是,应该看到,网络在为人们提供便利的同时,针对局域网的病毒种类日益增多,其安全性面临很大考验,严重影响了人们正常的工作和生活,甚至可能造成无法挽回的后果,因此,如何预防计算机病毒,保护网络系统的安全性,是我们所面临的一个非常重要课题。本文结合作者多年从事计算机网络管理的经验,对经常危害局域网安全情况作一些分析,并提出了相应的防范策略。一、局域网病毒特点在局域网络环境下,网络病毒除了具有可传播性、可执行性、破坏性、隐蔽性等计算机病毒的共性外,还具有一些新的特点(一)病毒传染速度快。在单机系统环境下,病毒主要通过移动存储设备从一台计算机传到另一台计算机。而在局域网络环境中,由于通过服务器把每一台计算机连接,这不仅给病毒传播提供了有效的通道,而且病毒传播速度很快。在正常使用情况下,只要网络中有一台计算机存在病毒,通过网络通讯设备迅速扩散,可以在很短的时间内,导致局域网内计算机相互感染繁殖。(二)对网络破坏程度大。如果局域网感染病毒,将直接影响到整个网络系统的工作,轻则降低速度,影响工作效率,重则破坏服务器重要数据信息,大量破坏计算机中的数据,导致整个网络系统崩溃,毁坏人们长期以来积累的工作成果,造成难以挽回的损失。对网络中的计算机破坏程度相当大。(三)网络病毒不易清除。清除局域网中的计算机病毒,要比清除单机病毒复杂得多。如果单台微机带病毒,可以通过删除带病毒文件、低级格式化硬盘等措施,将病毒彻底清除。而在网络环境中,只要有一台计算机未能完全消除消毒,就可能使整个网络重新被病毒感染,即使刚刚完成清除工作的计算机,也很有可能立即被局域网中的另一台带病毒计算机所感染;二、ARP攻击对网络的影响ARP攻击主要存在于局域网网络中,对网络安全危害极大。本人对ARP攻击有深刻的印象,曾经有一段时间,我们学校计算机实验室的微机经常出现IP地址冲突,网络经常掉线,不能正常上网,开始我们认为是网络中心出现了问题,可是后来发现是系统中了ARP病毒,当安装了360安全卫士等防护软件以后,一切都正常了。(一)ARP攻击特点ARP(AddressResolutionProtocol)是地址解析协议,是一种将IP地址转化成物理地址的协议。具体来说,ARP就是将网络层地址解析为数据连接层的MAC地址。如果你的计算机受到ARP攻击,常常会出现这样一些现象屏幕上不断弹出“本机的0-255段硬件地址与网络中的0-255段地址冲突”的对话框,局域网速度明显变慢,有时会突然掉线,但过一段时间后,网络可能又恢复正常。(二)ARP攻击原理ARP攻击就是通过伪造的IP地址和MAC地址,实现ARP欺骗,它能够在网络中产生大量的ARP通信数据,使网络系统传输发生阻塞。如果攻击者持续不断的发出伪造的ARP响应包,就能更改目标主机ARP缓存中的IP-MAC条目,造成网络遭受攻击或中断。基于ARP协议的工作特性,黑客向对方计算机不断发送有欺诈性质的ARP数据包,数据包内包含有与当前设备重复的Mac地址,使对方在回应报文时,由于简单的地址重复错误,导致不能进行正常的网络通信。常见ARP攻击对象有两种,一是攻击网络网关,或伪造网关,然后广播出去,让大家都误认为它是网关,使得局域网中的用户都不能上网,ping网关时断时续,ping外网时更是糟糕,这就好像发送错误的地址信息给邮递员,使所有信件无法正常送达;二是攻击局域网中的计算机,也就是一般用户。通过伪造IP地址和MAC地址,让一般用户把需要的信息传送给发动攻击的计算机。三、局域网病毒的防范我认为预防和清除计算机病毒,主要从以下几方面入手(一)要防止网络系统出现病毒,首先要切断病毒传播的途径。在局域网中,病毒主要通过移动存储器、电子邮件、浏览网页、下载软件等形式传播。因此,我们在计算机上从事每一项操作时,都要考虑到是否会危及到系统的安全,保证传输数据的存储设备没有感染病毒。(二)安装最新的防病毒软件由于操作系统本身未提供检测或清除计算机病毒的软件,所以,局域网应安装正版杀毒软件,并且及时对版本进行升级。同时,为了防止ARP攻击,还应安装360安全卫士等防护软件,并且开启360安全卫士“实时保护”中的“局域网ARP攻击拦截”,通过在系统内核拦截ARP攻击数据包,确保网关正确的,MC地址不被篡改。保障数据流向正确,通讯数据不受第三者控制,从而保证网络畅通。如果怀疑或确认计算机已经感染了病毒,应立即使用最新的防病毒软件及时杀毒。(三)绑定MAC地址和IP地址为了防止局域网中的计算机机乱发伪造的ARP数据包,将IP地止和计算机绑定在一起,是解决ARP攻击的最好办法。具体办法如下进入“MS-DOS”方式,在命令提示符下输入命令ARP-s<空格>IP地址<空格>MAC地址例如,假设有一台计算机,其IP地址为172.18.15.10,MAC地址为00-14-5E-F8-E2-E1,将其MAC和IP绑定的命令如下ARP-s172.18.15.1000-14-5E-F8-E2-E1使用ARP–a命令查看ARP缓存列表,可以看出IP地址的类型为static.,表明它是静态项。通过以上操作,我们将IP地址172.18.15.10和网卡地址为00-14-5E-F8-E2-E1的计算机绑定在一起,从而防止局域网ARP欺骗,有效保护局域网的安全。(四)使用防火墙防火墙(firewall)是一种协助确保信息安全的设备,依照特定的规则,允许或限制传输的数据通过,帮助计算机系统抵御用户、计算机病毒和蠕虫的恶意侵入攻击。防火墙可以是一台专属的硬件,也可以是一套软件,现在针对防火墙的软件相当多,一般的杀毒软件都具有防火墙的功能。(五)及时安装系统补丁任何一个操作系统发布以后,如果发现程序中有些漏洞,会及时发布一些应用程序来修复这些漏洞,我们把这些应用程序也称为“补丁程序”。当系统安装补丁程序后,黑客就不会利用这些漏洞来攻击用户。(六)做好系统备份为了保证局域网的安全,随时做好网络资料的备份是十分重要的。所谓网络备份,是指在网络系统发生黑客攻击、病毒感染、操作失误、软件系统错误等意外情况下,应急恢复系统的一种处理方案。目前备份系统的方法有很多种,最简单实用的如GHOST软件等。(七)一旦发现病毒,立即停止使用受病毒感染的计算机,并断开受感染机器的网络连接,关闭文件服务器,用最新版本的杀毒软件扫描服务器上所有的文件,清除病毒;如不能清除,则删除受到感染的文件;并用干净的备份文件恢复系统,当确信网络中病毒已彻底清除后,重新启动网络及各项工作。参考文献1杨丽锦.浅析局域网病毒的特点及防范策略,科技信息,20082张仁斌,李钢,侯整风.计算机病毒与反病毒技术.北京清华大学出版社,2006