软件需求:
1.最大支持4人
2.能进行文本通信,视频通信。
3.用户上下线的通知
软件设计:
2015/09/14
关于服务器与客户端线程处理的设想:
服务器:
1.服务器要为每个用户启动一个线程来处理服务器与用户之间的交互
2.这个线程中要分为两个线程 一个用来处理文本 一个用来处理音频
客户端:
1.启动两个线程 一个用来处理文本 一个用来处理音频
2.文本线程要单独添加一个读取文本(接受服务器发送的信息)的线程
/*****************************************************
处理文本需要可靠的TCP传输(socket)
处理音频需要UDP传输(DatagramSocket)
但是两种连接传输方式不同 难道要连接两次?!
解决方式:搭建两次数据链路
/*****************************************************
2015/09/15
关于服务器与客户端信息处理的设想:
服务器:
1.服务器接收到客户端发送的数据,然后以广播的方式,发送给除此客户端以外的其他所有在线用户
客户端:
1.客户端发送的信息,一份显示在此客户端,一份发送给服务器
2.客户端接收服务器传送的数据,并显示在此客户端
关于服务器与客户端中TCP与UDP的搭建与关闭处理的设想:
服务器:
1.服务器始终处于接收客户端连接的请求。连接成功后,单独开辟一个线程来处理服务器与此客户端的数据交互。
2.对于客户端A,服务器与A的TCP连接始终存在,除非A请求断开。但是UDP连接能多次连接与断开。
客户端:
1.客户端在启动时,自动搭建TCP连接,在关闭时发送关闭请求,并断开TCP连接。
2.UDP连接作为一个附加属性,在客户端运行时,可以多次搭建和关闭。
2015/09/22
关于服务器与客户端视频交互处理的设想
服务器:
1.服务器为每个用户分配一个组播地址
2.这个信息添加到User类中,便于通知其他用户
2.服务器会将客户A发送的数据,转发到A的组播地址
客户端:
1.客户端接收服务器传来的每个客户端的信息
2.客户端从其他客户端的专属组播地址分别去读取
关键点描述:
1.系统在实现过程中使用了JMF框架。
2.在实现用户上下线提醒时,我设计了一种编码,来让服务器与各客户端来解析。
2.使用到的协议
a.RTP(实时运输协议)为实时应用提供端到端的运输,但不提供任何服务质量的保证。(因为它是基于UDP的)
b.RTCP实时运输控制协议,与RTP配合使用,主要功能:服务质量的监视与反馈、媒体间的同步(如某一个RTP发送的声音和图像的配合),以及多播组中成员的标
志。
c.H.323会议通信协议,包括音频编解码器,视频遍解码器,H.255.0登记信令,H225.0控制信令,T.120数据传送协议,实时运输协议RTP和实时运输控制协议RTCP。
d.图片编码格式:JPEG。音频编码格式:ULAW
结果截图: