• 回答数

    3

  • 浏览数

    141

漂萍过客123
首页 > 学术期刊 > 聊天工具开发毕业论文

3个回答 默认排序
  • 默认排序
  • 按时间排序

小小的飞帆

已采纳

计算机 毕业 论文是有一定难度的论文,如果不懂一定要参考别人是怎么做的。下面是我为大家整理的计算机毕业论文优秀 范文 ,希望对大家有帮助。关于计算机类论文范文 【摘 要】全球信息化时代的到来,为人们的生活带来的巨大的变化,信息共享、信息交互程度的不断提高,也同时为计算机网络安全提出了更高的要求.如何能够使网络系统中的硬件、软件以及传输数据的安全得到有效的保证,成为信息时代的首要问题. 【关 键 词】计算机;网络安全;信息时代;信息安全 前言 计算机诞生之初功能较为单一,数据处理相对简单,而随着计算机 网络技术 的发展,计算机功能的多样化与信息处理的复杂程度显著提高.网络的出现,将过去时间与空间相对独立和分散的信息集成起来,构成庞大的数据信息资源系统,为人们提供更加便捷化的信息处理与使用方式,极大的推动了信息化时代的发展进程.然而,随之而来的是这些信息数据的安全问题,公开化的网络平台为非法入侵者提供了可乘之机,不但会对重要的信息资源造成损坏,同时也会给整个网络带来相当大的安全隐患.因此,计算机网络安全问题成为当今最为热门的焦点之一,随着网络技术的发展,安全防范 措施 也在不断更新. 2影响计算机网络安全的因素分析 影响计算机网络安全的因素有很多,其中既包括人为因素,也包括技术因素,因此,在计算机网络安全受到威胁时,首先要确定导致网络威胁的因素来源,这样才能够有效的、有针对性的进行解除,从而维护计算机网络信息的完整性、秘密性与可用性. 2.1人为操作失误导致的安全隐患 计算机用户都拥有各自不同的网络使用权限,由于用户安全意识不强经常会给不法分子可乘之机,在用户将 泄露或 设置过于简单的情况下,非法用户很容易侵入网络系统,对网络内的数据信息进行使用或篡改、删除、破坏等.因此,由于合法用户人为保护程度不够而导致的网络安全威胁,是计算机网络安全中常见的隐患之一. 2.2人为的恶意攻击 人为的恶意攻击是目前最为常见同时也是威胁力最大的计算机网络安全隐患,病毒与黑客就是人为恶意攻击的体现.恶意攻击往往具有很强的针对性,因此破坏程度较大,不仅能够截获、窃取和破译重要信息,同时也能够对信息数据造成破坏性的影响,对其的可用性与完整性进行损坏(计算机/计算机网络论文.木马程序是人为恶意攻击的代表性手段之一,它可以伪装成系统程序或其他可执行文件来诱使用户启用,从而为恶意攻击者提供端口信息,为实施进一步攻击带来可能.由此可见,人为恶意攻击的存在使计算机用户很难防范,特别是一般用户遭到恶意攻击的几率要大大高于一些高端用户. 2.3软件本身的漏洞 随着计算机应用软件多样化程度的不断提高,软件开发的复杂程度也不断提高,成千上万的代码构成的逻辑指令,再由繁杂的逻辑指令构建成能够实现用户需求的软件功能,其中程序漏洞的存在在所难免.黑客就是针对这些漏洞来对网络进行攻击的,软件的漏洞甚至可以造成致命的网络打击,黑客的攻击与软件的不断完善是一对长期伴生的矛盾,也成为了不可忽视的网络安全隐患.免费论文下载中心维护计算机网络安全的几点对策. 3.1物理安全维护对策 计算机网络安全包括物理安全与逻辑安全,物理安全往往容易被人忽略,如果能够引起人们的关注,计算机网络物理安全还是能够得到有效保障的.首先,物理安全是针对物理介质层次而言的,明确物理安全范围的界定,对构建物理安全体系非常必要.自然灾害所导致的设备物理损坏或操作失误而导致的硬件设备损毁,都属于物理安全范畴.因此,在计算机设备的维护上,既要做到最大限度的防止自然灾害所带来的破坏,同时更要注意人为操作的规范性,避免因操作不当而对硬件存储设备中的数据造成损坏. 3.2防火墙过滤措施 防火墙技术是网络之间的一道安全屏障,目前所使用的防火墙具有双层式结构,外部防火墙可以实现数据包过滤功能,内部防火墙是内部网络与外部网络连接的一条安全通道.防火墙位于计算机与外部网络之间,实现了限制外界用户对内部网络的访问,同时也将内部用户访问外部网络划分为不同权限.任何接入因特网的用户,开启防火墙进行数据包过滤与内部防护非常重要. 3.3入侵检测技术 入侵检测技术是针对计算机 系统安全 而设计的检测程序,启动入侵检测程序可以及时发现并向管理员 报告 系统中存在的未经授权的入侵或异常状况.入侵检测系统不仅可以发出入侵警告,同时也可以及时做出应对反映,对入侵源进行及时的切断,从而最大限度的保护计算机系统安全,提高计算机的抗病毒入侵能力. 3.4计算机漏洞扫描措施 应用软件的不断更新,功能复杂程度的不断提升与网络复杂性的日益增加,都增添了计算机漏洞的产生几率,依靠人为的漏洞查询显然不切实际,那么如何对计算机漏洞进行查找并改进,就成为了困扰软件开发者的一个核心问题.安装计算机漏洞扫描系统就可以及时查找与发现系统漏洞,并对该漏洞进行威胁等级评估,同时提出修改建议.利用这种扫描工具,可以通过及时安装补丁来完善软件程序,弥补系统漏洞,从而消除安全隐患.计算机漏洞扫描不仅保护了系统的完备性不受侵害,同时也促使软件开发者不断关注软件漏洞,并及时修正程序,是一种促使计算机系统不断完善的有效手段,也是维护网络安全的重要对策之一. 4.结语 构建全球化的信息网络平台已经成为了当今计算机网络发展的共识,实现这一目标的最根本支撑点,就是强大的网络安全保障,因此,针对各种安全隐患而采取的网络安全对策显得尤为重要,应当引起广大信息使用者的广泛关注.无论是在局域网还是因特网都同样存在信息数据的保护问题,在人为因素与技术因素的干扰下,如何实现信息数据的最大化安全成为计算机网络安全技术发展的根本出发点.计算机网络安全对策应当更加全方位的针对各种安全隐患,并充分考虑到各种威胁的特点来实施,这样才能够实现我们保护网络信息数据完整性、可用性与保密性的目标,随着网络安全技术的进步而不断继续完善,是我们今后将继续探讨的核心之一. 参考文献 [1]王玮.小议计算机网络系统的安全维护[J].现代经济信息.2010(5) [2]王永刚.浅谈计算机网络系统安全[J].计算机光盘软件与应用.2010(5) 如何做好档案网站建设 随着Internet的高速增长以及网络的成熟和发展,网站的设计也开始从以技术为中心,即以追求技术的新颖性和技巧的网站设计思想,逐渐发展为以用户为中心的设计思想。网站的可用性及易用性等逐渐成为了网站能否吸引访问者的要点。相信网站的建立者也不仅仅满足于每天数十人次的访问量和下载量,而是思考如何让网站更加符合用户的需求,让用户认同网站的价值。为此笔者综合考虑了我国档案网站现阶段的情况以及以往学者专家的意见,提出自己的一些见解。 1提高档案网站的服务,完善档案网站建设 网络环境下用户需求的显著特点之一就是个性化、差异化,他们不再满足一视同仁的信息内容,而是要求网站能够根据他们的个体需求,提供不同的信息内容,档案网站的服务要立足于“以用户为中心”的宗旨,除了强化档案网站的现有的档案查询、现行文件查询的服务外,档案网站应不断推出更多的特色服务、个性服务。这一方面是档案网站面临的挑战,另一方面也是档案网站提高自身存在价值的良好机遇。 首先,加强民生档案工作,推动民生档案资源体系建设和利用体系建设。必须坚持以党的十七大精神为指导,深入贯彻落实科学发展观,充分发挥档案信息资源在改善民生方面的积极作用;积极争取党委、政府的重视支持,为民生档案工作的发展创造条件;主动加强与各涉民职能部门的协调配合,建立完善工作协调机制,实现各系统民生档案的良胜互动;主动了解群众需要,围绕民生需求,积极调整馆藏收集范围,建立面向民生的多元化馆藏体系;加大民生档案资源的整合力度,实现民生档案信息资源共享;大胆创新服务机制,切实加强民生档案数据库建设,努力构建便捷高效的民生档案服务体系。 其次,增强与用户的交互,利用多种形式与访问者进行广泛的互动,如:①网站论坛,档案网站可以组织网站的访问者(尤其是网站的固定访问者)针对某方面的问题进行广泛的探讨。②标签,利用标签,用户可以链接到相同或相关标签的网站、网页,并且对网页内容按照自己的方式进行描述和分类,这样可以方便信息资源的检索和共享。③档案博客,可以附加评论的个人网页,以个人或群体按时间顺序所作的一种记录,并且不断更新。博客这种形式给档案馆馆员与用户之间搭建互动的交流平台,使档案网站的服务更具个性化和针对性。不仅改善了利用E-mail方式互动中的沟通延时和不透明的弊端,而且这种透明式的互动方式,让关注同样问题的其他用户在浏览时便可以获得解答,减少了重复工作,提高了效率。在线实时交流,专家答疑等。档案网站可以嵌入类似于QQ或MSN等聊天的工具,由专门人员负责在线回答用户提问,解决用户在查询、索取信息时遇到的问题,这有助于让用户在遇到问题时能够得到快速的解决方案。另外网上调查可以让档案馆更好的了解用户对于档案网站的需求。 最后, 生活类 相关的服务。对于一个专业档案网站来说,如果提供相关的档案网站链接并不算新奇和特色的话,提供几乎所有与用户生活相关信息查询的网站链接则可以看作是档案网站强烈服务意识的生动体现。档案网站要吸引众多的访问者,需要提供更多与大众生活相关的服务,不仅包括与大众利益相关的现行公开的文件的查询,还包括实时的便民信息,生活中与档案相关的知识以及生活类小常识的信息,如各大新闻网站、天气查询、火车航空时刻查询、甚至是股市动态等,当访问者进入一个档案网站,也能够看到熟悉的网站的链接,只需选择点击就可进入相关网站浏览相关信息,这样能够给访问者提供贴心温馨的服务。 2加强档案网站日常维护 网站维护主要内容是网站内容的编辑添加,当网站出现问题能迅速解决,网站有什么活动可以随时美化自己的网站。另外,网站隔一段需要改版,改版是对网站总体风格作调整。包括版面设计,色彩搭配等各方面。改版后的网站不仅会让用户感觉改头换面,焕然一新,吸引更多的新用户;而且.是档案网站不断完善不断进步的需要。从档案网站这几年的发展来看,各地档案部门也意识到了档案网站是需要不断的完善和改进的,如上海档案信息网上设置用户对网站改版的看法调查,四川省档案信息网刚刚经历过一次新的改版等。 3建立安全的防护体系 档案数字信息安全不仅是保障档案管理现代化建设的关键,也是档案工作者普遍关注的焦点问题。数据安全在网站维护中是一个重中之重的课题。而要保障数据的安全性,那要从存储安全、系统安全和网络安全三个方面考虑。只有当三层保护连成一体时,才可成为一个完整的保护系统。 首先是信息的存储安全。信息的存储安全常常是被人们所忽视的地方。造成对存储安全疏忽的原因可以归结三个方面:①社会对计算机信息安全的保护系统认识不足,往往认为网络安全和系统安全得到保障以后就可高枕无忧了;②部门缺乏对内部非法入侵的认识和重视;③市场上缺少合适的存储安全保护产品。所以对于档案部门来说必须要建立和完善档案信息安全制度、信息调存的管理制度我国档案网站建设的问题,、对策研究和网站信息、编审制度等,构建档案信息安全体系。加强对从事档案网站维护的人员信息安全制度的培训,并对相关人员的权限进行严格的控制。即使是合法的用户,也应该有严格的访问控制。杜绝内部泄密的可能。另外要加强相关目录的权限设置,有些目录在系统安装时和安装后,web服务器系统后台进程的权限是不同的,必须及时修改,防止暴露某些重要文件信息,甚至重要数据文件被篡改。尽量选用安全性能高的存储设备,增强信息的保密性。 其次是系统安全维护,其实没有完全安全的 操作系统 ,我们要选用尽可能可靠的操作系统和硬件平台,并对操作系统进行安全配置。①检查和确认未知的安全漏洞,及时装好安全补丁。为了系统安全,必须使用正版操作系统或者开源操作系统。要及时使用好操作系统自身的更新机制,还要保证杀毒软件实时更新。②更改系统的默认设置。特别是下载现成的网站系统,下载完成后应该按照程序技术文档说明修改重要信息的路径,尤其是默认的管理员密码、数据库的路径、后台管理页面等信息。③建立详细的安全审计日志。通过日志分析,管理员可以知道系统受到过哪些操作,以便确定这些操作是否是经过授权的,然后采取进一步的安全策略。④加强登陆过程的强制认证,确保用户的合法性,并且应该严格限制登录者的操作权限,将其完成的操作限制在最小的范围内。 再次,加强网络安全维护。保证机密性、完整性、认证性和访问控制性是网络安全的重要因素。①物理措施,保护网络关键设备,制定严格的网络安全 规章制度 ,采取防辐射、防火以及安装不间断电源(UPS)等措施,减少物理方面的隐患。②访问控制,对访问网络资源的用户的权限进行严格的认证和控制。进行用户身份认证,对口令加密,设置用户访问目录和文件的权限。③数据加密,对网络中传输的数据进行加密,待到达目的地后再进行解密还原,以防止非法用户拦截后盗用信息。④采用专用的服务器。将论坛、留言板等资源和重要的档案信息资源分开设置在不同的服务器上。⑤利用网络隔离和防火墙。防火墙技术是通过对网络的隔离和限制访问等 方法 来控制网络的访问权限。在防火墙上可以很方便的监视网络的安全性,并产生报警。网络管理员必须审计并记录所有通过防火墙的重要信息。如果网络管理员不能及时响应报警并审查常规记录,防火墙就形同虚设。 最后,建立档案网站应急机制,为防御自然灾害、战争及日常意外事故,保证档案资源信息的安全与日常档案业务的运行,必须建立档案资源信息应急恢复备份系统,提供可靠的系统备份、应用备份、数据备份和系统恢复能力,提倡异地备份,保证档案网络工作不间断地运行。当网站出现不可预测性错误时,要在最短的时间内把网站恢复到最近备份状态。以保证档案网络系统健康持续的发展。 相关 文章 : 1. 计算机专业论文范文3篇 2. 计算机专业论文精选范文 3. 计算机论文范文大全 4. 有关计算机网络的毕业论文

317 评论

小乖candy

一、前言计算机设计之初,只是为了运用于科学研究,因为其非同寻常的运算速度而大大简化了人类的脑力劳动。随着社会的快速发展,计算机已经不再是及其昂贵并且功能单一的纯粹的计算工具。当今的计算机不仅性能越来越好,体积也越来越小,设计的完美伴随的并不是价格的提升,而是越来越大众化。个人电脑是当代社会计算机的主要表现形式。在个人电脑和网络流行的今天,人类的交流方式也越来越丰富,以全球互联网络为载体的网络即时聊天工具软件越来越多的出现,不仅大大节省了信息传递所使用的能源,更体现着人类社会的丰富多彩。本软件的开发,主要是针对小型用户群,能实现基本的即时交流功能,能应用于局域网和互联网,很适合作为学校及企业内部交流工具。1.1 项目开发的主要内容本系统能够在安装有Microsoft Office或其他带有 Microsoft Visual Basic 6.0 运行库的Microsoft Windows 98以及更高版本的操作系统环境下运行,设计并实现的功能除了基本的即时聊天,还有文件传输,自定义表情等。1.2 项目开发运用到的主要技术1. 采用Microsoft Access 2000来完成数据库管理平台开发 。2. 采用Microsoft Visual Basic 6.0开发平台来完成系统的前台环境(客户端)开发。3. 采用Winsock来实现客户端和服务器的通讯。二、 数据库与工具简介2.1 基于TCP/IP 协议的C/S 模式体系结构本聊天系统包括客户端和服务器,即采用客户端—服务器架构,客户端发送、接收信息,服务器端在客户端之间转发信息。传输层协议为TCP/IP协议。客户机/服务器(C/S)结果是当前非常流行的数据库系统结构。在这种体系结构中,客户机提出请求,服务器对客户机的服务请求做出回应。每一个服务器都为整个局域网系统提供自己最擅长的服务,让所有客户机来分享;客户机上的应用程序借助于服务器的服务功能实现复杂的应用功能。在C/S结构中,数据库存储层出于服务器上,应用层和数据界面层出于客户机上。在C/S数据库服务器结构中,客户机负责管理用户界面,接收用户数据、处理应用逻辑、生成数据库服务请求,并将服务请求发送给数据库服务器,同时接收数据库服务器返回的结果,最后在将返回的结果按照一定的格式或方式显示给客户机。C/S系统结构使整个系统具有较好的性能。C/S结构的通讯成本也比较低,主要原因在于:(1) 降低了数据传输量,数据库服务器返回给客户机的仅是执行数据操作后的结果数据。(2) 由于许多应用逻辑处理由客户机来完成,因而减少了许多的不必要的与服务器的通信开销。TCP/IP协议的特点:Internet上的TCP/IP协议之所以能够得到迅速发展,不仅因为它是美国军方指定使用的通信协议,更重要的是它恰恰适应了世界范围内的数据通信的需要。TCP/IP协议主要有以下几个特点:开放的协议标准,可以免费使用,并且独立与特定的计算机硬件与操作系统;独立与特定的网络硬件,可以运行在局域网、广域网,更适用与互联网中;统一的网络地址分配方案,使得整个TCP/IP设备在网中都具有唯一的地址;标准化的高层协议,可以提供多种可靠的用户服务。TCP协议的特点是:提供面向连接的、可靠的、全双工通信;支持数据流的传输;传输连接的可靠建立与释放;提供流量控制与拥塞控制。2.2 Microsoft Access 2000简介关于数据库的建立,我们选择了Microsoft Access 2000作为工具,因为和商业化的SQL server相比,虽然Access在安全性和处理并发能力等方面略逊一筹,但是Access的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。微软公司通过大量地改进,将Access的新版本功能变得比最初版本强大许多。不管是处理公司的客户订单数据;管理自己的个人通讯录;还是大量科研数据的记录和处理,人们都可以利用它来解决大量数据的管理工作。Access的组成部分:表表是Access应用程序的人机交互界面,基本上是所建数据库中的表加上各种可视化的组件元素。查询查询的本质就是SQL的数据操纵语句,利用查询可以通过不同的方法来查看更改和分析数据,对表、记录、字段的多数据操作都可通过查询来完成。报表报表对象实际上就是一些制定好的特殊查询,不过这是只具有一个查询结果的显示界面,便于打印分析。宏宏是指一个或多个操作的集合,其中每个操作实现特定的功能。宏可以使某些普通的任务自动完成。模块模块就是数据库程序中的程序文件和过程文件。每一个模块可以包含一个或多个子程序、函数或属性。Access数据库窗口子数据表用户可以使用表、查询窗体和子窗体数据表来查看子数据表。子数据表可以绑定表、查询或窗体。数据访问页数据访问页是一个Web页,可以用来添加、编辑、查看或处理Microsoft Access数据库或SQL Server数据库中的当前数据。2.3 编程工具Visual Basic 6.0简介本系统的编程工具使用Visual Basic 6.0。Visual Basic 6.0是美国微软公司开发的一个面向对象的可视化编程工具,经过多次换代后,它已经成为一个全新的成熟的高端产品。“Visual”意为“可视化的”,指的是一种开发图形用户界面的方法,所以Visual Basic是基于Basic的可视化的程序设计语言。在Visual Basic中,一方面继承了Basic所具有的程序设计语言简单易用的特点,另一方面在其编程系统中采用了面向对象、事件驱动的编程机制,用一种巧妙的方法把Windows的编程复杂性封装起来,提供了一种所见即所得的可视化程序设计方法。Visual Basic 6.0是一种可视化的编程语言,利用这种可视化技术进行编程,能使编程工作变得轻松、快捷,摆脱了面向过程语言的虚度细节,而将主要精力其中在解决实际问题和设计友好界面上。同时,VB在数据库开发方面能读取和访问Access、Excel、FoxPro和ODBC等多种数据库,并能够利用VB自身所带的数据库引擎创建Access数据库,所以VB在管理信息系统(MIS)的开发和建设方面得到了广泛的应用。VB6.0包括三个版本:学习版、专业版、企业版是在相同的基础上建立起来的,以满足不同层次的用户需要。三、总体设计3.1 引言3.1.1 目的本总体设计说明是根据编写网络即时聊天系统的前期需求编写的。涉及客户端登录,即时聊天,文件传输,资料修改,好友添加删除,服务端数据库建立,登录信息监控,BUG报错等方面的总体设计思想。在和同组同学们的共同研究讨论下,我们完成了对网络即时聊天系统总体设计。3.1.2 专业词定义数据流图DFD(Data Flow Diagram): 数据流程图描述管理信息系统如何操作和处理各种数据。反映系统的动态特征。表达了系统分析人员对现有系统的认识,对目标系统的认识和对目标系统的设想。是系统的功能模型,通过流程建模,把系统的功能进行详细分析,从而使系统分析员可以更好的地与用户交流。数据流程图表达了数据和处理过程的关系,描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。因为数据流程图是逻辑系统的图形表示,即使不是专业的技术人员也容易理解,所以是极好的通信工具。此外,设计数据流程图只考虑系统必须完成的基本逻辑功能,完全不考虑如何具体的实现这些功能,所以它是软件设计很好的出发点。数据流程图由四种基本符号组成:(1)正方形(或立方体)代表数据的源点或终点(2)圆脚矩形(或圆形)代表变换数据的处理(3)开口矩形(或两条平行线)代表数据存储(4)箭头代表数据流,即特定的数据的流动方向3.1.3.字典DD(Data Dictionary):是关于数据的信息的集合,也就是对数据流图中所包含的元素的定义的集合。数据字典由四类元素定义组成:数据流 、数据项 、数据存储、数据处理。数据流是数据结构在系统内传输的路径。数据项是不可再分割的数据单位数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。处理过程的具体处理逻辑一般用判定表或判定树来描述。数据结构反映了数据之间的组合关系。一个数据结构可由若干个数据项组成也可由若干个数据结构组成,或由若干个数据项和数据结构组成。六、总结在这个软件设计的最初,我们即按照老师的要求一步一步往下做,努力作好需求分析。因为在软件的开发过程中需求分析是十分重要的。在初步了解的基础上,我们根据老师给予的关于即时聊天系统设计思路的讲解,对系统进行了详细的需求分析。这样就使我们对于网络即时聊天系统的开发有了一个大致的思路。在最初的几个星期里,我们一直在做完善需求分析的重复工作。这样就为下一步的设计打下了坚实的基础。到了数据库设计阶段,首先选择了ACCESS 2000作为数据库管理系统。因为我们需要的数据库并不是十分复杂,经过一段时间的共同努力,我们的数据库建立成功了。下一阶段就到了编程阶段了,在这个阶段我们首先考虑的是界面,一个界面设计的好坏直接关系到使用者的方便程度,于是老师提出的要求就是实用。在实用的基础上尽量美观大方。我们经过反复的改正后,界面固定下来。然后就进入编写程序阶段了,在编程过程中,我们借鉴了很多资料,同时也请教了其他有经验的同学。在可以实现同一功能的多个控件中经过仔细研究,确定了最优的控件。这样在老师的要求和帮助下,我们的界面逐渐的得以完善并最终确定下来,到了真正编写代码的时候,我们在需求分析做的努力逐渐显示出来,因为在这个过程中,我们几乎没有遇到什么十分棘手的问题,各项功能也随之增加。在经过和老师的交流讨论之后,我们的设计也逐渐进入了尾声。这样,我们的设计就基本上完成了。在接下来的时间里,我们继续对我们的设计进行优化,包括界面的美观,以及程序的设计。在严格的测试后,逐渐使网络即时聊天系统不再出现大的错误,能够很稳定的运行。

344 评论

xxs的吃喝玩乐

“对图中的那些函数,我这里稍加解释一下。”

int  WSAStartup(WORD wVersionRequested, LPWSADATA  lpWSAData);

功能是初始化Windows Socket Dll,在Windows下必须使用它。

参数:

“wVersionRequested”表示版本,可以是1.1、2.2等;

“lpWSAData”指向WSADATA数据结构的指针。

int socket(int family, int type, int protocol);

功能是建立Socket,返回以后会用到的Socket值。如果错误,返回-1。

参数:

“int family”参数指定所要使用的通信协议,取以下几个值:AF_UNIX(Unix内部协议)、AF_INET(Internet协议)、AF_NS Xerox(NS协议)、AF_IMPLINK(IMP连接层),在Windows下只能把“AF”设为“AF_INET”;

“int type”参数指定套接字的类型,取以下几个值:SOCK_STREAM(流套接字)、SOCK_DGRAM (数据报套接字)、SOCK_RAW(未加工套接字)、SOCK_SEQPACKET(顺序包套接字);

“int protocol”参数通常设置为0。

int bind(int sockfd, struct sockaddr *my_addr, int addrlen);

功能是把套接字和机器上一定的端口关联起来。

参数:

“sockfd”是调用socket()返回的套接字值;

“my_addr”是指向数据结构struct sockaddr的指针,它保存你的地址,即端口和IP地址信息;

“addrlen”设置为sizeof(struct sockaddr)。

int listen(int sockfd, int backlog);

功能是服务端监听一个端口,直到accept()。在发生错误时返回-1。

参数:

“sockfd”是调用socket()返回的套接字值;

“backlog”是允许的连接数目。大多数系统的允许数目是20,也可以设置为5到10。

int connect(int sockfd, struct sockaddr *serv_addr, int addrlen);

功能是客户端连接服务端监听的端口。

参数:

“sockfd”是调用socket()返回的套接字值;

“serv_addr”保存着目的地端口和IP 地址的数据结构struct sockaddr;

“addrlen”设置为sizeof(struct sockaddr)。

int accept(int sockfd, void *addr, int *addrlen);

功能是服务端接受客户端的连接请求,并返回一个新的套接字,以后服务端的数据传输就使用这个新的套接字。如果有错误,返回-1。

参数:

“sockfd”是和listen()中一样的套接字值;

“addr”是个指向局部的数据结构sockaddr_in的指针;

“addrlen”设置为sizeof(struct sockaddr_in)。

int send(int sockfd, const void *msg, int len, int flags);

int recv(int sockfd, void *buf, int len, unsigned int flags);

功能是用于流式套接字或数据报套接字的通讯,我们数据的真正传输就由它们完成。

参数:

“sockfd”是发/收数据的套接字值;

“msg”指向你想发送的数据的指针;

“buf”是指向接收数据存放的地址;

“len”是数据的长度;

“flags”设置为 0。

int sendto(int sockfd, const void *msg, int len, unsigned int flags,const struct sockaddr *to, int tolen);

int recvfrom(int sockfd, void *buf, int len, unsigned int flags, struct sockaddr *from, int *fromlen);

功能和send、recv类似,不过是用于无连接数据报套接字的传输。

int closesocket(int sockfd)

功能是关闭套接字。

参数“sockfd”为要关闭的套接字值。

程序:

“这里的目的是让大家对Socket编程有个整体了解。不用怕,程序我会详细解释的,首先是服务端的程序。其流程是:

socket()→bind()→listen→accept()→recv()/send()→closesocket()

具体代码如下:”

#include 

#include 

#pragma comment(lib,"Ws2_32")

#define MYPORT 830  /*定义用户连接端口*/

#define BACKLOG 10  /*多少等待连接控制*/

int main()

{

int sockfd, new_fd;                                  /*定义套接字*/

struct sockaddr_in my_addr;          /*本地地址信息 */

struct sockaddr_in their_addr;        /*连接者地址信息*/

int sin_size;

WSADATA ws;

WSAStartup(MAKEWORD(2,2),&ws);           //初始化Windows Socket Dll

//建立socket

if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)

{

//如果建立socket失败,退出程序

printf("socket error\n");

exit(1);

}

//bind本机的MYPORT端口

my_addr.sin_family = AF_INET;                     /* 协议类型是INET  */

my_addr.sin_port = htons(MYPORT);            /* 绑定MYPORT端口*/

my_addr.sin_addr.s_addr = INADDR_ANY;   /* 本机IP*/

if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr))== -1)

{

//bind失败,退出程序

printf("bind error\n");

closesocket(sockfd);

exit(1);

}

//listen,监听端口

if (listen(sockfd, BACKLOG) == -1)

{

//listen失败,退出程序

printf("listen error\n");

closesocket(sockfd);

exit(1);

}

printf("listen...");

//等待客户端连接

sin_size = sizeof(struct sockaddr_in);

if ((new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size)) == -1)

{

printf("accept error\n");

closesocket(sockfd);

exit(1);

}

printf("\naccept!\n");

//有连接,发送ww0830字符串过去

if (send(new_fd, "ww0830\n", 14, 0) == -1)

{

printf("send error");

closesocket(sockfd);

closesocket(new_fd);

exit(1);

}

printf("send ok!\n");

//成功,关闭套接字

closesocket(sockfd);

closesocket(new_fd);

return 0;

}

对服务端程序的流程概括:

先是初始化Windows Socket Dll: WSAStartup(MAKEWORD(2,2),&ws);

然后建立Socket: sockfd = socket(AF_INET, SOCK_STREAM, 0)

再bind本机的MYPORT端口:

my_addr.sin_family = AF_INET;         /* 协议类型是INET   */

my_addr.sin_port = htons(MYPORT);       /* 绑定MYPORT端口  */

my_addr.sin_addr.s_addr = INADDR_ANY;   /* 本机IP           */

bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr))

接下来监听端口: listen(sockfd, BACKLOG)

如果有客户端的连接请求,接收它: new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size)

最后发送ww0830字符串过去: send(new_fd, "ww0830\n", 14, 0)

收尾工作,关闭socket: closesocket(sockfd);    closesocket(new_fd);  ”

编译、执行,就会一直监听830端口

客户端程序了。其流程是:

socket()→connect()→send()/recv()→closesocket()

比服务端更简单吧!其实现代码如下:”

#include 

#include 

#include 

#pragma comment(lib,"Ws2_32")

#define PORT 830                            /* 客户机连接远程主机的端口 */

#define MAXDATASIZE 100                     /* 每次可以接收的最大字节 */

int main(int argc, char *argv[])

{

int sockfd, numbytes;

char buf[MAXDATASIZE];

struct sockaddr_in their_addr;        /* 对方的地址端口信息 */

if (argc != 2)

{

//需要有服务端ip参数

fprintf(stderr,"usage: client hostname\n");

exit(1);

}

WSADATA ws;

WSAStartup(MAKEWORD(2,2),&ws);         //初始化Windows Socket Dll

if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)

{

//如果建立socket失败,退出程序

printf("socket error\n");

exit(1);

}

//连接对方

their_addr.sin_family = AF_INET;                         /* 协议类型是INET  */

their_addr.sin_port = htons(PORT);                       /* 连接对方PORT端口 */

their_addr.sin_addr.s_addr = inet_addr(argv[1]);        /* 连接对方的IP */

if (connect(sockfd, (struct sockaddr *)&their_addr,sizeof(struct sockaddr)) == -1)

{

//如果连接失败,退出程序

printf("connet error\n");

closesocket(sockfd);

exit(1);

}

//接收数据,并打印出来

if ((numbytes=recv(sockfd, buf, MAXDATASIZE, 0)) == -1)

{

//接收数据失败,退出程序

printf("recv error\n");

closesocket(sockfd);

exit(1);

}

buf[numbytes] = '\0';

printf("Received: %s",buf);

closesocket(sockfd);

return 0;

}

对客户端程序的流程概括:

首先是初始化Windows Socket Dll: WSAStartup(MAKEWORD(2,2),&ws);

然后建立Socket: sockfd = socket(AF_INET, SOCK_STREAM, 0)

接着连接服务器方:

their_addr.sin_family = AF_INET;                                 /* 协议类型是INET    */

their_addr.sin_port = htons(PORT);                           /* 连接对方PORT端口      */

their_addr.sin_addr.s_addr = inet_addr(argv[1]);         /* 连接对方的IP  */

connect(sockfd, (struct sockaddr *)&their_addr,sizeof(struct sockaddr))

连接成功就接收数据: recv(sockfd, buf, MAXDATASIZE, 0)

最后把收到的数据打印出来并关闭套接字:

printf("Received: %s",buf);      closesocket(sockfd);

编译结束后,运行服务端,然后。客户端 服务端IP  回车

你会看到服务端发来得数据。

那么基本的点对点通信就没问题了。只要两台机器同时包含服务端和客户端,就可以互相通信了。

当然,你也可以将服务端和客户端分开做,专门一个服务器负责用户登录和转发消息。

流程如下:

A客户端发登录消息-----》服务器

服务器验证发送用户消息----》客户端

A客户端想发消息给B客户端----》先发给服务端

服务器得到消息查询B客户端IP并转发消息。(或者B客户端循环发消息询问服务器有无消息)

通信结束。

104 评论

相关问答

  • 聊天系统的开发和研究论文

    背景就是有需要沟通的时候不用见面或大电话了,方便还省钱。意义就是提高了网络利用率。

    木雨大大雯 3人参与回答 2023-12-08
  • 毕业论文网络聊天室

    毕业论文,泛指专科毕业论文、本科毕业论文(学士学位毕业论文)、硕士研究生毕业论文(硕士学位论文)、博士研究生毕业论文(博士学位论文)等,即需要在学业完成前写作并

    魅影幽兰 3人参与回答 2023-12-11
  • 毕业论文系统开发工具简介

    毕业论文 (设计)指导书(适用于2007届电子信息工程、计算机控制专业)目 录毕业论文(设计)任务书一.毕业论文(设计)的目的和任务二.毕业论文(设计)的

    简单已逝 4人参与回答 2023-12-11
  • 简单聊天室设计毕业论文

    毕业论文写作的标准格式⑴ 题名.是以最恰当,最简明的语词反映论文中最重要的特定内容的逻辑组合,应避免使用的不常见的省略词,首字母缩写字,字符,代号和公式,字数一

    阿里嘎多~ 3人参与回答 2023-12-10
  • 网上聊天室毕业论文

    我有JAVA网络聊天室的毕业论文

    我是怖怖 5人参与回答 2023-12-11