《综合课程设计》2012_实时通信指导书[1]

发布时间:   来源:文档文库   
字号:

信号与信息处理综合应用课
程设计




20129


第一设计要求
一、设计题目
基于Socket的即时通讯系统二、设计目的
通过综合课程设计,使学生能够运用《数字信号处理》《信号与系统》《通信原理》《面向对象的程序设计》《计算机通信网》《通信协议开发及应用》等课程的知识来设计一个基于Socket的即时通讯系统,培养学生的动手能力以及分析问题、解决问题的能力。三、设计要求(一)基本要求
1熟练掌握面向对象的程序设计方法;
2实现点对点通讯,能进行文字对话传输,包括客户端与服务器端;3能对系统参数进行配置。(二)提高要求
1、实现文件、图片传输;2、语音对话(两人及两人以上)3、友好的对话界面。四、进度安排
12012910(星期一)上午900开始作课程设计动员和课程设计任务安排。
22012910日下午,为调研、收集资料阶段。可以到图书馆、书店或网络上查阅相关资料,主要收集有关网络编程的基本原理、方法
-1-

等方面的资料,以及IP协议、ICMP协议文本。
32012912日至2011921日上午,编写源程序、上机调试。42012912日星期五下午(200提交课程任务结题报告,并参加答辩(优)五、设计提示
1系统设计框图
数据
客户端
服务器端

注:局域网中任一端点都可作为客户端或服务器端。
2设计参考资料
TCP/IP网络编程技巧Windows编程
MicrosoftVisualC++6.0从入门到精通DELPHI网络编程
-2-

计算机通信网基础
六、综合课程设计报告书要求
(一)告内容1设计目的。2设计内容。3设计要求。4设计原理。
5软件设计(附程序流程图、源程序清单)
6调试过程(论述调试中所遇到的各种问题,以及解决这些问题的思路和
过程)
7实验结果分析(对设计的系统和运行结果进行简要分析)8体会和建议。
9参考文献,参考文献的标注注意一定要符合《科技论文标注国家标准》
相关的规定。
-3-

第二评分标准
课程设计的成绩从以下4个方面进行考核:
1纪律:由指导教师根据平时考勤、学习态度及是否遵守设计安排
酌情评分;
2答辩:由指导教师统一安排答辩时间及顺序,根据设计内容及论
文提问相关问题,根据学生的回答决定答辩成绩;
3实作:根据设计过程中,由指导教师记录的学生编程及调试的相
关情况,以及答辩时学生上机操作的情况进行评分;
4论文:论文要求包括文献综述、开题报告、结题报告及附源程序
等内容,并对具体的格式及内容提出要求,根据学生完成论文的情况及内容给出相应成绩。
其中纪律占20%,实作占50%(含答辩),论文占30%。按照百分比给出优、良、中、及格、不及格五个等级。
-4-

第三原理简介
1TCP/IP简介
TCP/IP的历史要追溯到70年代中期,当时ARPA为了实现异种网之间的互连
(interconnection与互通(intercommunication,大力资助网间网技术的研究和开发,1977年到1979年推出目前形式的TCP/IP体系结构和协议规范.到今天,TCP/IP技术以及Internet网间网已经为广大计算机工作者,机算机厂商和机算机用户所接受.据统,1990,Internet以包含遍布欧美的五千个活动网络,超过三十万台机算机.作为一种事实上的工标准,TCP/IP技术方兴未艾.
2TCP/IP的网络分层结构
TCP/IP协议来说,TCP提供传输层服务,IP提供网络层服务.TCP/IP协议组(Internet协议组的分层结构及其与OSI模型的对应关系如图4所示.图中有关协议的名称及其基本含义如下:
(1TCP.为传输控制协议(TransmissionControlProtocol.它是提供给用户进程的一个可靠的全双工字节流的面向连接的协议.大多数Internet应用程序使用TCP.TCP使用IP,所以整个Internet协议组也常称为TCP/IP协议组.(2UDP.为用户数据报协议(UserDatagramProtocol.
(3ICMP.为网间报文控制协议(InternetControlMessageProtocol.(4IP.网间协议(InternetProtocol.IP协议是为TCP,UDPICMP提供分组发送服务协议.
(5ARP.地址转换协议.(6RARP.反向地址转换协议.
3Socket编程界面
(1Socket原理
Socket编程界面由4BSDUNIX首先提出,目的是解决网间网进程通信问题.Socket接口为进程间通信提供了一种新的手段,它不但能用于同一机器中的进程之间的通信,且支持网络通信功能.Socket具有类型,反应了对用户透明的通信特性.一个完整的Socket连接用一个相关描述:
-5-

{协议,本地地址,本地端口,远地地址,远地端口}
Socket是面向客户-服务器模型而设计的,针对客户和服务器程序提供不同的Socket系统调用.
(2Socket系统调用
不管Socket内部机制如何,它提供给应用程序员的最终界面是一组系统功能调用.下面,我们一一给出重要的Socket系统调用.1.创建Socket-----socket(调用格式如下:
sockid=socket(af,type,protocolaf:地址族,指本socket所用地址类型.
type:类型,指创建socket的应用程序所希望的通信服务器类型.protocol:协议,指本socket请求的协议.2.指定本地地址----bind(调用
bind(将本地socket地址与所创建的socket联系起来,即将本socket地址赋予socket,以指定本地半相关.bind(的作用相当于给socket命名,调用格式为:bind(sockid,localaddr,addrlensockid:socket.
localaddr:本地socket地址.addrlen:地址长度.
3.建立socket连接----connect(accept(调用
这两个系统调用用于完成整个相关的建立.其中connect用于建立连接.调用格:
connect(sockid,destaddr,addrlen
destaddr:指向对方socket地址(信宿地址结构的指针.accept:用于面向连接的服务器,其调用格式为:
-6-

newsock=accept(sockid,clientaddr,paddrlenclientaddr:指向客户socket地址指针.paddrlen:客户socket地址长度.4.listen(调用
此调用用于面向连接服务器,表明它愿意接收连接,listen(accept(之前调,格式为:
listen(sockid,quelenquelen:请求队列长度.
5.发送数据----write(,writev(,send(sendto(,sendmsg(用于socket数据发送的系统调用一共有五个,其中三个,write(,writev(send(用于面向连接传输,其余两个用于无连接传输.面向连接的调用可以不指定信宿地,而无连接的调用必须指定.假如无连接socket的双方均调用过connect(,可以认为是建立有连接的socket,也可以面向连接调用发送数据.三个面向连接调用三者的格式大致相同:write(sockid,buff,bufflen:缓冲发送writev(sockid,iovector,vectorlen:集中发送send(sockid,buff,bufflen,flags:可控缓冲发送其中buff指向发送缓冲区的指针,bufflen是发送缓冲区大小.用于无连接数据发送的调用有两个:
sendto(sockid,buff,bufflen,flags,dsadd,addrlensendmsg(sockid,message,flags:可控集中无连接发送.
6.接收数据----read(,readv(,recv(recvfrom(,recvmsg(接收数据与发送数据系统调用是一一对应的,两者参数的最大区别是,前者buffer是一个指针,其所指单元初值为欲读数据长度,调用后的值是实际读出的值.
4客户--服务器模型的Socket实现框架
-7-

1客户--服务器模型时序图
下图是面向连接客户--服务器模型的典型时序图服务器客户socket(socket(bind(bind(listen(accept(等待客户连接请求阻塞<━━━━━━━━━━━━━━━connect(read(<━━━━━━━━━━━━━━━>write(
2服务器socket地址的确定
在客户--服务器模型中,所有的作用者都是客户首先发起的(如连接请求,服务请求等,因此客户必须要知道服务器socket地址,另外,客户调用服务器之前,可以在命令行中给出服务器所在主机的域名,根据域名可以获得服务器主机的地址,系统调用
:hp=gethostbyname(host.其中host可以是服务器主机域名,返回hp是一个指向主机地址结构的指针.

-8-

附录:课程设计中要用到的Winsock函数
WSAStartupWSACleanupsocketconnectclosesocketbindlistenacceptrecvrecvfromselectsendsendtoshutdowngetpeernamesetsocketopt
gethostbynameinet_addrgetservbynamegetprotobyname
初始化socket结束socket库的使用
为所要进行的网络通信建立标识符连接到远程主机结束通信,关闭标识符
IP地址、TCP端口号与套接字标识符绑定将接受套接字置于被动模式,
将服务器置于侦听状态,并指定允许的连接数接受下一个呼入的连接接收传入的TCP数据接收传入的UDP数据
在指定的套接字集准备好接收数据前一直等待发送TCP数据发送UDP数据释放TCP连接
从套接字中获取对等方的端口地址获取当前套接字的可变选项
把域名转换成网络IP地址
把用点分十进制表示的IP地址转换成网络IP地址获得服务器的端口号
TCPUDP转换成相应的服务号码(interger
-9-



(二)面格式
-10-


评阅教师评语:课程设计成绩
考勤成绩实做成绩报告成绩总评成绩

指导教师签名:

《综合课程设计》


论文题目:
学院(系)电子信息与自动化学院级:学生姓名:学号指导教师:胡顺仁、梁快、佘丽

时间:


-11-

本文来源:https://www.2haoxitong.net/k/doc/c133ea310b4c2e3f57276336.html

《《综合课程设计》2012_实时通信指导书[1].doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式