网上交谈工具的设计与实现_第1页
网上交谈工具的设计与实现_第2页
网上交谈工具的设计与实现_第3页
网上交谈工具的设计与实现_第4页
网上交谈工具的设计与实现_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、网上扳谈东西的方案与实现摘要利用visual#.net中的sket编程的关键技能,以及多线程的知识实现一个简朴的网上扳谈东西,它提供的成效有:用户登录、表现全部当前的在线用户、表现举行扳谈的用户信息、与选定的用户举行扳谈,而且支持私家扳谈。对付开拓一样平常性的通讯软件,有必然的参考代价。关键词skettp协议办事器客户端线程一、弁言随着信息技能的高速生长,网上扳谈已成为人们学习和事情的紧张本领,那么怎样方案公正的、人性化的网上扳谈东西就成为当务之急。利用visual#.net中的sket编程技能,以及多线程的知识可快速、便利地方案抱负的网上扳谈东西。一个sket通讯无论成效何等齐备、步伐何等庞

2、大,其根本布局均应包罗以下步调:创立sket东西,创立毗连;翻开毗连到sket的输入/输出流;对sket举行读写操纵;封闭sket套接字,封闭流。二、tp协议通讯的流程tp协议是面向毗连的协议,它的实现必要数据发送方和数据吸收方创立数据通讯毗连,它的详细流程如下:1.办事器端起首创立办事器套接字2.办事器套接字监听一个端口,等候客户端的哀求3.客户端创立一个客户端套接字4.客户端向办事器发送毗连哀求5.办事器确认与客户端的毗连6.客户端和办事器利用创立的毗连举行通讯7.通讯完毕后,客户端和办事器封闭各自的毗连三、sket编程简介1.利用sket创立办事器步伐要用sket创立一个tp办事器步伐,

3、一样平常必要以下几个步调:1创立一个办事器套接字,用ip地点和端口初始化办事器2监听办事器端口3确认与客户端的毗连4处置惩罚客户端的哀求并回应客户端5断开客户端的毗连,开释客户端的毗连6封闭办事器,开释办事器毗连2.利用sket创立客户端步伐要用sket创立一个tp客户端步伐,一样平常必要以下几个步调:1创立客户端套接字2毗连办事器3得到与办事器通讯的流畅道4向办事器发送数据5吸收从办事器发回的数据6断开毗连四、方案方案1.办事器端的方案办事器端办理着扳谈使命,它维持着一张当前在线用户的列表,转发用户发送来的信息,重要成效如下:监听本机ip地点中的一个指定的端口。当有客户端向该端口发出哀求时,

4、办事器步伐立即创立一个与该客户端的毗连并启动一个新的线程来处置惩罚该客户端的全部哀求。按照客户端发送来的种种差异的哀求,实行相应的操纵,并将处置惩罚效果返回给该客户端。办事器能识别4种哀求下令:nn创立新的毗连、hat(谈天、priv(私聊)和exit(脱离),办事器吸收asii字符信息,用“|分开信息的各个部门,一条信息包罗一条下令,一个或多个信息参数。2.客户端的方案客户端应用步伐包罗用户登录窗口和用户扳谈的主窗口,它容许用户登录到办事器,可以向办事器发送信息,同时可以吸收从办事器返回的信息,方案的重要成效如下:向长途办事器发送毗连哀求。得到办事器步伐简直认后,创立与办事器的毗连,并得到与

5、办事器交互的流畅道netrkstrea。通过网络流畅道与办事器端的步伐举行数据通讯。向办事器发送办事器可以或许识别的以上4种下令哀求,同时也吸收办事器发回的下令。客户端可以或许识别的下令有jin照顾当前在线用户有新的用户进入谈天室、list(更新当前在线用户)和quit(封闭客户端步伐。客户端步伐吸收asii字符信息,用“|分开信息的各个部门,一条信息包罗一条下令,一个或多个信息参数。五、办理方案1.办事器端的实现办事器端是一个inds窗体应用步伐,定名为hatserver。当运行办事器步伐时,单击办事器窗体上的“启动按钮后,便启动了办事器历程。为了利用sket东西和thread东西,在代码文

6、件中参加名字空间、.sket、syste.threading的引用。在办事器端利用了多线程,每个用户通过一个单独的线程举行毗连,当办事器开始运行时,它就启动一个线程等候客户毗连在要领startlisten()中实现。当吸收到一个哀求时,办事器立即启动一个新的线程来处置惩罚和该客户端的信息交互在要领servielient()中实现。自界说了一个lient类,它用于保存每个当前在线用户的用户名和与办事器毗连的sket东西。当sket毗连一旦创立,就立即将其保存在一个lient东西中,以便让每个用户有本身的sket,以后可以对差异用户的sket东西举行操纵,实现与客户端的数据互换。在办事器窗口中,单

7、击“启动按钮,进入btnstart_lik处置惩罚步伐。在该处置惩罚步伐中,创立了一个办事器套接字而且监听本机ip地点中的一个指定的端口,同时启动一个线程等候用户毗连在要领startlisten()中实现。startlisten()要领是在新的历程中举行的操纵,它重要用于当吸收到一个客户端哀求时,确认与客户端的毗连,而且立即启动一个新的线程来处置惩罚和该客户端的信息交互在要领servielient()中实现。servielient()要领用于和客户端举行数据通讯,包罗吸收客户端的哀求,按照差异的哀求下令,实行相应的操纵,并将处置惩罚效果返回到客户端,此要领完成了办事器的重要的事情。sendtl

8、ient()要领实现了向客户端发送下令哀求的成效,它利用差异用户保存的sket东西,向对应的用户发送下令哀求。getuserlist()要领实现了猎取当前在线用户列表的成效,它通过对lients数组的遍历,猎取当前在线用户的用户名,用字符串发回。2.客户端的实现客户端是一个inds窗体应用步伐,定名为hatlient。当运行客户端步伐时,起首进入登录界面,输入用户名,单击“登录按钮后,进入扳谈主窗口定名为lgin,在主窗口中可以向办事器发送信息,同时可以吸收从办事器返回的信息。(1)lgin.s文件的实现lgin.s文件是登录窗体的代码文件,为了利用sket东西,在代码文件中参加名字空间、.s

9、ket的引用,它重要实现了创立客户端套接字同时毗连到办事器指定端口,把用户名和创立的客户端套接字通报给hatlient窗体。(2)hatlient.s文件的实现hatlient.s文件是客户端窗体hatlient的代码文件,在该文件中,起首得到与办事器通讯的流畅道,在用户登录后,向办事器发送nn下令以此说明有新的用户进入扳谈室,办事器将返回全部的当前在线用户的呢称,选择差异的人,就可以与他们扳谈了,假设选中“暗暗话复选框,那么具有私家扳谈的成效。当加载hatlient窗体时,便会进入hatlientfr_lad处置惩罚步伐。在该处置惩罚步伐中,起首表现用户登录窗口。假设登录乐成,那么猎取与办事

10、器的毗连并得到与办事器数据交互的流畅道,向办事器发送nn哀求下令,同时启动一个新的线程用于相应从办事器发回的信息在要领serverrespnse()中实现。serverrespnse()要领用于和办事器举行数据通讯,重要是吸收从办事器发回的信息,按照差异的下令,实行相应的操纵。当必要举行“私家扳谈时,便进入prihekbx_hekedhanged处置惩罚步伐。在该处置惩罚步伐中重要对privatede的布尔属性举行设置。当必要发送信息时,便会进入btnsend_lik处置惩罚步伐。在该处置惩罚步伐中,假设privatede的布尔属性值为false(不是私家扳谈),将hat下令发送给办事器;不然为私家扳谈,将priv下令发送给办事器。当用户必要脱离时,便进入了btnexit_lik处置惩罚步伐。在该处置惩罚步伐中,将exit下令发送给办事器,制止扳谈。六、竣事语利用sket编程的关键技能可以便利地实现网上扳谈东西。利用sket可以创立办事器步伐和客户端步伐。办事器监听本机ip地点中的一个指定的端口,创立与客户端的毗连并启动一个新的线程来处置惩罚客户端的全部哀求,实行相应的操纵,并将处置惩罚效果返回给该客户端。客户端向长途办事器发送毗连哀求,得到办事器步伐简直认后,创立与办事器的毗连,并得到与办事器交互的流畅道并通过网络流畅道与办事器举行数据通

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论