




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
局域网语音聊天软件设计1 系统设计要求1.1 需求分析本系统为一个用C#实现的局域网一对一网络语音聊天,该系统的具体功能如下:1) 能够实现局域网文字聊天,并且及时更新聊天记录。2) 能够实现局域网语音聊天,当一方发出申请后,只要另一方按下语音聊天键确认,就可以聊天了。3) 服务器中有文本框可输入主机在局域网中的IP(也可输入127.0.0.1,在本机测试),并开设一个端口(软件中设为8660)侦听,客户端只要访问服务器IP中正在侦听的端口,就可以实现连接了,而客户端的连接端口由机器自动分配。为了使操作方便,客户端中ID输入123就可以了,软件中有通过条件判断将其转化为端口8660。4) 一旦建立连接,双方的对话功能就不能暂停,只有当一方关掉软件后才能结束对话,这时另一方也将自动关掉程序。5) 服务器和客户端可在同一台机上运行测试,因为双方开设的端口不冲突。1.2 界面要求要求界面简洁美观,简单易用。1.3 设计环境本程序选择Visual Studio 2005作为实验环境。2 设计思路2.1 用面向对象的方法分析系统对于网络语音聊天软件来说,主要分两部分设计,一为服务器,二为客户端。服务器是客户端访问的对象,本聊天软件,在服务器开设了一个侦听端口(8660),等待客户端的访问,如果服务器没有开始侦听,客户端是访问不了服务器的。一旦访问成功就可以,服务器与客户端之间就可以建立一条连通线路,以供对话用,可以进行文字聊天,进而语音聊天。建立两个windows窗体应用程序的项目,分别为Server(服务器)和Client(客户端)。语音聊天引用了外部动态链接库Voice.dll。编程主要分三部分进行,第一部分为连接部分,第二部分为文字聊天部分,第三部分为语音聊天部分,第二、三部分分别用两个线程来及时更新。2.2 概要设计根据设计思路,可以为系统设计三个部分下面先看服务器和客户端的各组件属性:2.2.1 服务器:labIP Text (服务器IP)labRecord Text (聊天记录)labInput Text(输入信息)txtIP(输入IP用)txtRecord (聊天记录) 属性设置:Multiline(true) ScrollBars(Vertical) ReadOnly(true) txtInput(输入信息) 属性设置:Multiline(true) ScrollBars(none) ReadOnly(false) btnConfirm Text(确定)btnStartText(开始侦听)btnSoundText(语音聊天)btnSendText(发送)2.2.2 客户端:labIP Text (服务器IP)labID Text (端口号ID)labRecord Text (聊天记录)labInput Text(输入信息)txtIP(输入IP用)txtID(输入ID用)txtRecord (聊天记录)属性设置:Multiline(true) ScrollBars(Vertical) ReadOnly(true) txtInput(输入信息) 属性设置:Multiline(true) ScrollBars(none) ReadOnly(false) btnConnectText(连接)btnSoundText(语音聊天)btnSendText(发送)3 程序设计3.1 连接部分(1)服务器:成员变量TcpClient remoteClient; /声明远程客户端private bool connected = false; / bool类型,用于判断是否建立连接const int BufferSize = 8192; / 缓存大小,8192字节private static IPEndPoint ePoint; / IP+端口号private int i; /声明变量i,jprivate int j;TcpListener listener; /声明一个侦听主要方法private void Form1_Load(object sender, EventArgs e) /窗体加载事件private void button3_Click_1(object sender, EventArgs e) /“确定”单击事件private void btnStart_Click(object sender, EventArgs e) /“开始侦听”单击事件public void createLinked()/建立连接(2) 客户端成员变量private const int lPort = 8660;const int BufferSize = 8192; / 缓存大小,8192字节private bool connected = false; / bool类型,用于判断是否建立连接TcpClient remoteClient; /声明远程客户端string ps = 123;/初始化一个端口号public int i;主要方法private void Form1_Load(object sender, EventArgs e) /窗体加载事件private void btnConnect(object sender, EventArgs e) /“连接”单击事件由于服务器与客户端代码的主要差别在于连接部分,文字聊天与语音聊天差别不大,所以下面这里成员变量和主要方法放在一起讲。3.2 文字聊天部分主要方法private void tx(string s); /用于改变聊天记录文本框的内容private void StartListen();/用于侦听来自客户端的信息3.3 语音聊天部分成员变量private WaveOutPlayer m_Player;private WaveInRecorder m_Recorder;private byte m_PlayBuffer;private byte m_RecBuffer;private Thread t; /声明一个线程,用于侦听语音聊天的信息private Socket r; /声明一个套接字,用于语音聊天主要方法private void btnSound_Click(object sender, EventArgs e)private void Voice_In()/获取语音输入流private void Voice_Out(IntPtr data, int size) /获取语音输入流private void Filler(IntPtr data, int size) private void Start()private void Stop()4 调试过程4.1 程序主界面服务器和客户端的exe可执行文件都在bin下的Debug文件夹里。服务器:客户端:4.2 设置双方相关参数,准备连接。客户端(192.168.1.106为测试主机在局域网中的IP地址,在不同的电脑测试应改为所属电脑的IP,也可用127.0.0.1测试):客户端:4.3 连接成功,这时可以实现即时文字对话。服务器:客户端:(注:服务器和客户端的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024医学检验(中级)高分题库及参考答案详解【黄金题型】
- 电工通关题库审定版附答案详解
- 2025年邮政行业职业技能鉴定模考模拟试题含答案详解【夺分金卷】
- 中国邮政2025张掖市秋招寄递物流运营类岗位面试模拟题及答案
- 邵阳双清区中烟工业2025秋招心理测评题库含参考答案
- 中国邮政2025临夏回族自治州秋招网点柜员岗位高频笔试题库含答案
- 弥渡县中烟工业2025秋招市场销售岗位面试模拟题及答案
- 镇江京口区中烟工业2025秋招网络管理岗位面试模拟题及答案
- 营养师考试题型分布及答案
- 英语语法中考试题及答案
- 新员工网络安全知识培训课件
- 后勤人员消防知识培训课件
- 中药饮片养护技术
- 八上必背文言文解析(全册)
- 2025年高等教育法学类自考-00859警察组织行为学历年参考题库含答案解析(5套典型考题)
- 2025年大队委选拔笔试题目及答案
- 2025年广东省中学生天文知识竞赛试题(及答案)
- 2025年秋期部编版五年级上册小学语文教学计划+教学进度表
- 2025年送气工考试试题及答案
- 国企投资融资管理办法
- 水电站大坝安全现场检查技术规程 -DL-T 2204
评论
0/150
提交评论