- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
E=L
《网络程序设计》课程设计报告
目:
业:
基于TCP的局域网视频聊天程序
计算机科学与技术师范类)
号:0815012
号:
名:陈敏
名:
完成日期:
2011-6-1
成绩:
- 题目及要求
基本要求
本课程设计的基本要求是在校园网范国内能进行视频聊天,文字聊天,文件传输。
功能详细描述
视频聊天:在局域网范国内通过TCP协议实现客户端与客户端之间视频的传输,客户端 能够看到服务端的视频,服务端也能够看到客户端的视频。
文字聊天:客户端和服务端之间在进行视频的同时也能够进行简单的文字聊天。
文件传输:客户端和服务端之间可以在建立连接之后任任意时间进行文件传输。在文件 传输的同时可以进行文字聊天和视频传输的功能。
可能出现的难点
系统开发的重雄点在于视频画面的捕捉并传输、文件的传输,因此系统的重难点是视频 的传输和文件的传输C
二、系统概要设计
系统开发用到了三大基本技术,分别为文字聊天、文件传偷技术和视频处理技术,由于 整个过程是基于TCP协议,首先介绍TCP协议的建立过程.如图2-1
服务器 客户端
Socket ()
Socket
Bind()
LislenO
Accept()
?
Connect)
Receive()
SendO
SendO
?
Receive()
Close()
Closc()
l 丿
图2.1
L文字聊天的基本原理
系统分为客户端和服务端,严格上说客户端在某些时刻也作为服务端使用,服务端 在某些时刻也作为服务端使用。服务端首先启动开始监听消息传输时使用的端口,当客
户端启动时,主动连接服务端。连接完成之后客户端与服务端建立套接字连接,在此之 后两者之间便可以对等的进行文字聊天。原理图如下所示:
2 .文件传输技术
文件传输中使用了文件流和TCP套接字来传输.主要过程如下:
客户端和服务端建立连接
建立的过程和文字聊天建立的连接过程是相同的。
发送端向接收端发送要接受文件的文件名
发送端从文件中读取到缓冲区并发送给客户端
客户端和服务端的用于发送和接受的缓冲区的大小是相同的,为了实现两个的大小 相同可在输出文件之前由发送方告诉接受方本次输岀所用的缓冲区的大小。每次发送之 前应将剩余文件的大小与缓冲区的大小做比较,当剩余文件的大小小于缓冲区的大小 时,调整缓冲区的大小同剩余文件相同,将剩余的文件发送到接收端。
关闭文件流
3.姗传输技术
视频的传输过程利用了 avicap32.dll和user32.dll完成摄像头的视頻采集。 avicap32.dll 和 user32.dll 是 Window API 应用程序接口的相关模块。avicap32.dll 接口可 以方便地对摄像头和其他视频硬件进行API电影和视频的截取。
主要过程如下所示:(将发起视频的称为客户端)
客户端和服务端建立连接
建立的过程和文字聊天建立的连接过程是相同的。
客户端发起视頻连接的请求
客户端打开本地摄像头,每隔10ms向服务端发送采集到的图片,同时接受服务端 发送过来的图片
服务端打开本地的摄像头,同时接受客户端发送过来的图片和向客户端发送图片
关闭视频传输
流程图如下所示;
客户端服务端
客户端
服务端
三、系统详细设计
客户机与服务机之间的通信过程如下所示
由上图可知主要的函数为字节数组发送函数、字节数组接收函数、消息发送函数、消息 接收函数、文件发送函数、文件接收函数、视頻发送函数、视频接收函数。详细介绍如 下所示:
L字节数组发送函数SendVarData
public static int SendVarData(S(x:kel s, byle|| data)
〃函数返回的是发送字节数组的大小
int total = 0;
int size = data.Length;//发送数组的大小
int dataleft = size:
int sent:
bytc[] datasize = new byte[4];
datasize = BitConverter.GetBytes(size);
sent = s.Send(datasize)7/首先发送字Ti数组的大小
while (total size)
(〃循环发送字节数组的主体
sent = s?Scnd(data. total, dataleft, SocketFlags.None);
total += sent:
dataleft -= sent;
}
return total;
}
2.字节数组接受函数ReceiveVarData
public static byte[] ReceiveVarData( Socket s)
(//函数返回值是接受的字节数組
int total = 0:
int reev;
by1e[| datasize
您可能关注的文档
最近下载
- 职场心理学培训课件.pptx VIP
- 第一单元作文“青春情怀”导写及范文 统编版高中语文必修上册.docx VIP
- 2024年大学毕业生薪资待遇与行业发展报告.pptx VIP
- 2025年新版招聘看护队考试题及答案.pdf VIP
- 2025最新小学“学宪法讲宪法”知识竞赛试题库及答案.docx VIP
- 博饼规则(含图及奖品分布).xls VIP
- 2024年~2016年历年事业单位场监督管理局面试真题及答案解析18套.docx VIP
- 从商业角度看《孙子兵法》受日本人喜爱的原因.docx VIP
- 抗精神药物常见不良反应.pptx VIP
- 统编版高中语文必修上册第一单元“青春价值”单元主题作文导写及范文赏析3篇.docx
文档评论(0)