欢迎来到天天文库
浏览记录
ID:18550157
大小:62.00 KB
页数:7页
时间:2018-09-18
《网络课程设计24650》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机科学与技术学院2008-2009学年第2学期《计算机网络》课程设计题目:基于TCP的网络聊天程序班级:060341A学号:060341101姓名:柏榴基教师:成绩:目录1需求分析11.1课程设计目的11.2课程设计内容11.3课程设计要求12概要设计22.1原理概述22.2运行环境32.3基本设计思路32.4功能模块设计43详细设计53.1程序流程53.2主要算法63.3主要数据结构73.4主要函数说明84用户使用手册95项目分析与总结115.1项目分析11(实现过程中遇到的问题及解决办法;系统运行结果分析:要求用Sniffer分析出网络通信采用的运输层协议、IP地
2、址、端口号等信息)5.2总结与建议12附录A源程序代码文件说明13(每个源程序代码文件用一句话说明即可)附录B参考文献141需求分析1.1课程设计目的:熟悉网络编程基本原理1.2课程设计内容:使用C#语言编写网络聊天工具2概要设计2.1原理概述:这是一个基于TCP的聊天工具,需要在两台机子上装有该聊天工具,通过连接、监听、数据发送和接收,最终完成该聊天功能的实现。2.2运行环境:WINDOWS平台2.3基本设计思路:首先需要创建套接字用于网络间的传送与接收,然后通过主线程建立接受线程,以实现接收数据的功能,创建套接字需要先初始化,创建,与绑定三个步骤,之后将主线程创建的套
3、接字的变量进行转换,转换到接受线程当中。然后在成功接受数据后通过:PostMessage(hwnd,WM_RECVDATA,0,(LPARAM)&temprecv)发送消息,并通过CChatDlg::OnRecvData(WPARAMwParam,LPARAMlParam)处理消息。之后,实现发送功能,并完善各控件的功能与限制条件。2.4功能模块设计:IDC_STATIC:用于实现聊天内容的显示。IDC_EDIT_SEND:用于实现发送内容的显示。IDC_IPADDRESS1:用于实现对方IP地址的显示。IDC_BTN_SEND:实现发送消息的功能。IDC_LIST_FR
4、IEND:实现好友列表的显示。IDC_BTN_ADD:实现添加好友的功能。IDC_BTN_DLE:实现删除好友的功能。IDC_EDIT1:用于填写好友的姓名IDC_IPADDRESS1:用于填写好友的IP地址流程图:客户端程序服务端程序Socket()Socket()Bind()SOCKADDR_IN()SOCKADDR_INAccept()Send()Recv()Recv()Send()Closesocket()3详细设计3.1主函数、页面加载staticvoidMain(){Application.Run(newMainForm());}privatevoidMain
5、Form_Load(objectsender,System.EventArgse){this.Listener=newThread(newThreadStart(StartListen));this.Listener.Start();}privatevoidMainForm_Closed(objectsender,System.EventArgse){if(this.Listener!=null)this.Listener.Abort();if(this.TcpListener!=null)this.TcpListener.Stop();}3.2监听函数(含接受功能)pr
6、ivatevoidStartListen(){this.TcpListener=newTcpListener(19808);this.TcpListener.Start();while(true){TcpClientTcpClient=this.TcpListener.AcceptTcpClient();NetworkStreamMyStream=TcpClient.GetStream();byte[]bytes=newbyte[2048];intbytesRead=MyStream.Read(bytes,0,bytes.Length);stringmessage=Sys
7、tem.Text.Encoding.UTF8.GetString(bytes,0,bytesRead);this.richTextBox2.Text+=message+"";}}3.3发送函数(含连接功能)privatevoidsend(){if(this.IP.Text.Length<7){MessageBox.Show("IP地址错误!","错误信息:",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}if(this.richTextBox1.Text.
此文档下载收益归作者所有