资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
计算机网络课程实习报告 目录基于C/S结构的聊天应用程序一、 课程设计的内容。二、 课程设计的软、硬件条件。三、 程序设计步骤。三、 课程设计小结。五、 参考文献。六、 附件。关键词:C/S结构、聊天程序摘要:在互联网飞速发展的今天,网络已成为人们生活中不可缺少的一部分,无论是在商业、工业还是政府部门中都早已普及开来,如今就连教育事业也都承载着网络这四通八达的命脉迅速的发展起来。基于C/S结构的网络聊天程序如雨后春笋般冒出,如ICQ、QQ、MSN Message等网上寻呼软件,我们用VB编一个简单的C/S结构聊天软件来了解网上寻呼软件的工作原理。一、课程设计内容内容:编写基于C/S结构的聊天应用程序。二、课程设计的软、硬件环境硬件环境:CPU:AMD BORTON 2500+,内存:512M,网卡:REALTEK RTL8139,Microsoft Virtual PC 2005(Windows2000操作系统)。软件环境:WindowsXP SP2操作系统, Microsoft Visual Basic 6.0。三、课程设计步骤原理:网络聊天工具需要通过TCP/IP协议,因此可以把网络聊天程序分为服务器端和客户器端两部分。其中,服务器端用以把程序转换成一个虚拟的 TCP/IP 服务器。并且和指定的客户机建立连接,在连接成功后,向指定的客户器发送和接收数据;客户器端把程序转换成一个虚拟的TCP/IP 客户器,并且向指定的服务器发出连接信号,在连接成功后,向指定的服务器发送和接收数其中TCP/IP协议以包含在控件的属性中,因此只要正确填入属性(IP地址,端口),便可实现网上通讯。本程序是基于C/S构架的聊天程序,提供局域网内多人进行聊天的功能。程序分为两个部分,即服务器程序和客户端程序。利用VB编写程序实现。1.实验预备知识介绍:1.Winsock控件简介:1)TCP/IP技术的核心部分(传输层、互联层和网络接口层)通常在操作系统的内核中实现。2)Socket调用:TCP/IP网络操作系统提供的典型网络编程界面。Windows、UNIX、Linux等都支持socket。Microsoft Visual C+:socket被封装成类(CAsyncSocket和Csocket)。Microsoft Visual Basic:socket以Winsock控件的方式出现。3)Winsock控件:主机之间利用TCP通信:(本课程采取的通信方式)客户程序:RemoteHost属性、RemotePort属性、Connect方法服务器程序LocalPort属性、Listen方法、ConnectionRequest事件、Accept方法。发送和接收数据SendData、DataArrival事件、GetData方法2.设计思想:服务器程序的实现过程是: (1)服务器程序必须设置好LocalPort属性,作为侦听端口,该值为一个整数(只要是一个其它TCP/IP应用程序没有使用过的值即可)。 (2)使用Listen方法进入侦听状态,等待客户机程序的连接请求。 (3)客户机程序发出连接请求,使服务器程序产生ConnectionRequest事件,该事件得到一个参数requestID。 (4)服务器程序用Accept方法接受客户机程序的requestID请求。这样,服务器程序就可以用SendData方法发送数据了。Accept方法必须用上一步得到的requestID作为其参数。 (5)当服务器程序接收到数据时,产生DataArrival事件,参数BytesTotal包含接收到的数据字节数。在该事件中,可以用GetData方法接收数据。 (6)如果接受到Close事件,则用Close方法关闭TCP/IP连接。 客户机程序的实现过程是: (1) 客户程序设置Remotehost属性,以便指定运行服务器程序的主机名,该字符串可在“控制面板|网络|标识|计算机名”中查到。 (2) 设置RemotePort属性,以便指定服务器程序的侦听端口。 (3)使用Connect方法,向服务器提出连接请求。 (4)服务器接受客户机程序的请求,客户机程序产生Connect事件,就可以用SendData方法发送数据了。 (5)当客户机程序接收到数据时,产生DataArrival事件,参数BytesTotal包含接收到的数据字节数。在该事件中,可以用GetData方法接收数据。 (6)如果接受到Close事件,则用Close方法关闭连接。 Winsock控件还有两个重要的属性,即Protocol和State。Protocol设定使用的协议是TCP还是UDP:取值sckTCPProtocol表示TCP, 取值sckUDPProtocol则表示UDP。因为Winsock控件的缺省设置是sck Protocol,所以程序中并没有使用Protocol属性。State属性反映的是当前TCP/IP的连接状态,取值如表1所示。 表1 Winsock控件的State属性及其描述常数值描述sckClosed0缺省值,关闭。SckOpen1打开。SckListening2侦听sckConnectionPending3连接挂起sckResolvingHost4识别主机。sckHostResolved5已识别主机sckConnecting6正在连接。sckConnected7已连接。sckClosing8同级人员正在关闭连接。sckError9错误。客户端和服务端设计、运行界面如下:1)服务器程序的编写2)客户端程序的编写:3)日志文件的编写4)运行结果显示:四、课程设计小结通过本次编写基于C/S结构的聊天应用程序的课程设计,本人掌握了数据通信与计算机网络的基本概念、基本知识和基本技术;能够做简单的网络,能够使用常用的网络工具软件维护网络;通过使用VB语言编制网络软件,加深了对该语言的了解和使用,熟悉了网络软件的设计方法,并且通过观察数据的传输过程进一步理解计算机网络体系结构及其应用技术;达到了课程设计的基本要求。五、参考文献1 计算机网络实验指导 计算机网络课程设计农大计算机学院2 Visual Basic 工程应用实例- 张显库 编著六、附件利用Winsock控件编写简单的客户-服务器的源代码一、服务器程序Private Sub txtOut_Change()For i = 1 To Num If tcpServer(i).State sckClosed Then tcpServer(i).SendData txtout.TextEnd IfNext iEnd SubPrivate Sub TxtSend_KeyUp(KeyCode As Integer, Shift As Integer)If KeyCode = 13 Then For i = 1 To Num If member(i) = 0 Then Exit Sub Else If tcpServer(i).State = sckClosed Then Exit For Else tcpServer(i).SendData server: & TxtSend.Text rtbSave.Text = rtbSave.Text + TxtSend.Text End If Next i rtbSave.SelStart = Len(rtbSave.Text) rtbSave.Text = rtbSave.Text + Chr(10) + TxtSend.TextTxtSend.Text = End IfEnd Sub二、客户端程序:Dim NewClient As BooleanPrivate Sub cmdConnect_Click()On Error GoTo errhandle:tcpClient.RemoteHost = txtHost.TexttcpClient.RemotePort = txtPort.TexttcpClient.ConnectNewClient = TrueExit Suberrhandle: MsgBox Err.DescriptionEnd SubPrivate Sub Command1_Click()End SubPrivate Sub Command2_Click()End SubPrivate Sub Command3_Click()End SubPrivate Sub cmdExit_Click()Unload frmClientEnd SubPrivate Sub cmdLogin_Click()Load frmClientLogInfrmClientLogIn.ShowEnd SubPrivate Sub cmdQuit_Click()On Error GoTo errhandle:tcpClient.SendData q & lblName.Caption & CStr(Now()Exit Suberrhandle: MsgBox Err.DescriptionEnd SubPrivate Sub Form_Load()txtHost.Text = 166.111.162.179txtPort.Text = 5000Me.cmdConnect.Enabled = FalseMe.cmdQuit.Enabled = FalseEnd SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)FrmWebBroswer.ShowEnd SubPrivate Sub tcpClient_Connect()txtOut.Locked = FalsetcpClient.SendData / + lblName.CaptionEnd SubPrivate Sub tcpClient_DataArrival(ByVal bytesTotal As Long)Dim sData As StringIf New
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号