文档库 最新最全的文档下载
当前位置:文档库 › 《VOIP网络电话点对点通讯实施方案》

《VOIP网络电话点对点通讯实施方案》

《VOIP网络电话点对点通讯实施方案》
《VOIP网络电话点对点通讯实施方案》

《VOIP网络电话点对点通讯实施方案》

第一篇:voip网络电话点对点通讯实施方案voip即是voiceoverip,是把话音或传真转换成数据,然后与数据一起共享同一个ip网络(inter互联网)。深圳九联科技有限公司提供的企业上网voip网络电话通讯系统,是一种直接接普通电话,通过inter网络拨打国际长途电话的设备,通话质量接近idd长途电话,广泛适用于国内外中小型外向型企业。使用九联科技voip网络电话通讯系统,企业内部通讯(包括电话和传真)所有费用都将全部为零。voip网络电话点对点通讯实施方案:。什么是voip。

voip即是voiceoverip,是把话音或传真转换成数据,然后与数据一起共享同一个ip网络(inter互联网)。深圳九联科技有限公司提供的企业上网voip网络电话通讯系统,是一种直接接普通电话,通过inter网络拨打国际长途电话的设备,通话质量接近idd长途电话,广泛适用于国内外中小型外向型企业。使用九联科技voip网络电话通讯系统,企业内部通讯(包括电话和传真)所有费用都将全部为零。

二、为什么要建立公司、企业voip通讯网络。

通过inter来进行电话或传真通讯,为您年复一年地节省了大量的通讯费。

如果在两个地点之间有频繁的长途电话通讯,您一定会深深地体会到长途通讯所带给您的沉重负担。如果有多个办事处、国外的合作伙伴,或欲大幅度降低任何两地之间的长途费用,都值得您花些时间对我司的voip系统应用解决方案做进一步的了解。

随着adsl、lan、ddn等宽带网络的渐渐普及和网络速度、带宽的大幅提高。如果企业还只是利用adsl等宽带网络收发电子邮件、浏览网页、查找资料等常用的简单运用,会造成很多带宽资源的浪费。

九联voip网络电话的出现,就是充分利用企业现有的普通adsl 等宽带资源,把企业的通讯和传真业务转移到企业现有的adsl等宽带网络上进行通讯和传真。因为企业的adsl等宽带网络大都是采用包月的方式,当企业两地总、分公司之间,都安装上voip设备以后,企业原来两地之间总、分公司的通讯和传真业务都会通过企业的adsl 等宽带网络进行通讯,从而年复一年的节省下了大量的企业异地总、分公司之间的国际、国内通讯费用.。我公司voip网络电话语音网关的特点即时直接省钱――通过把企业电话、传真业务转移到企业现有的adsl等宽带网络上进行传输,为企业即时省下了大量的长途通讯费用。视乎企业用户的通讯数量,可为您即时节省全部通讯费用;同时,无话费沟通将是您与您的客户、上下级同仁沟通较以往更加充分细致,减少阻隔和资源浪费,也大大加强了与上司、客户和家人的感情沟通。

话音质量接近idd――九联与中国铁通信、电讯盈科、中华电信等专业电信服务商合作(或其下属公司)绝对保证你的话音质量,同时九联voip网络电话系统配备全球最新的qos语音协议,使得网络话音质量十分优良稳定,不掉线,让您与公司客户、本公司同仁、您的上司及您的家人放心无阻隔地进行沟通。

全公司都可使用――我司的voip网络电话系统可以接入到公司

内部的pbx(程控交换机)中,这样可以开通给全公司的员工使用,只要拿起桌上现有的电话,就可以拨打免费的长途电话或传真了;拨打使用方便――总、分公司之间的内部号码可由自己随意设置,大家所面对的只是普通电话而不是电脑,无需重新学习,即可立即使用,几乎不改变使用习惯;安装、维护简单――真正的高科技带给您的只是快捷和便利,九联voip网络电话系统使用简单,几乎即插即用,按照详尽的中英文使用手册,您就能轻松使用通信系统。同时九联配备专业的voip网络电话工程师,为您提供详尽的安装调试服务、维护和培训,公司为您提供免费达一年专业的售后服务。

远远不只是点对点通讯免费――我司的voip网络电话系统除了能够实现点对点完全免费通话以外,还能同时支持点对面通讯,以极低的资费价拨打全球任一电话。还可以拨打对方所在地的电话,而所需费用只是对方付市话费用即可。整个过程都是自动实现的。就好像把对方所在地的电话线路,拉到您自己的办公桌上一样。

第二篇:计算机网络课设点对点聊天《计算机网络》课程设计说明书

(点对点聊天程序)

院:

计算机与信息科学学院

学生姓名:专

业:软件工程班

级:1401班

完成时间:xx年12月

摘要

目前即时通讯软件在平时的生活中有着十分广泛的应用,但是对绝大部分的软件来说,都必须得应用在互联网上,必须在一个internel 环境下才能使用。有的时候单位内部的员工,同学,可能没有互联网环境或者其他的原因希望不用上inter就可以进行通讯,这样开发局域网通讯程序就有了必要性。本文提出了局域网通讯软件的需求,并详细对网络协议tcp/ip协议族进行了介绍和研究,如tcp,udp,广播,ip等相关的技术。并对网络通讯原理进行了说明,采用了client/server 模型,程序基于tcp协议,通过socket接口来实现局域网内的即时通信工功能即聊天的功能。服务器端的一个端口用来监听对服务的请求,另外有一个临时端口用来给客户端发送数据,当客户端向该地址提出连接请求时,服务器端会对它的请求做出相应的反应。该软件采用多线程技术支持多用户操作,能够帮助企业在局域网内搭建起自己的聊天系统。避免了必须的经过互联网的过程。经过测试,程序能够有效达到基本的预期要求

关键词课程设计;计算机;tcp/ip协议;服务器/客户端;java;

引言

近年来,随着全球信息化进程的不断发展,网络也在飞速发展。出于高效、快速地处理各种事务的目的,越来越多的企业在其内部使用局域网来进行工作。在内部局域网的帮助下,企业得以简化信息流

程,提高信息交换的速度,从而提高工作效率。然而,随着企业规模的扩大,业务量的增加,在局域网上运行的应用越来越多,如知识库、网络会议、数据库应用和数据的同步与备份等,这些应用对局域网的信息吞吐、处理能力的要求也越来越高。这些在企业内部原有局域网设计之初未曾考虑到的新情况的出现使得局域网不堪重负,容易发生信息阻塞,此时,局域网不但不能提高生产效率,反而成为企业发展的瓶颈。

了解决上述矛盾,人们提出了许多方法。提升网络带宽及增加服务器的吞吐能力是解决此矛盾的一种方法。然而,从企业运行的成本方面考虑,无论是单纯地提升网络带宽或增加服务器的吞吐能力都不能从根本上解决局域网资源紧张的问题,对旧有局域网的大规模硬件改造反而会增加企业的负担。

基于socket的局域网通信软件可以为企业原有的局域网提供一种良好,安全,快速的通信机制。它的实现无需对企业原有的局域网硬件进行任何改动,具有实现成本低廉的优点,它的使用能有效地降低局域网通信负荷,提高局域网的使用效率,可以很好地解决企业内部局域网的各种通信需求。

基于socket的局域网聊天工具是此类局域网通信软件的具体实例之一,它很好地诠释了socket通信的原理,并且在企业内部通信、教学、讨论等应用中都具有一定的实用价值。它具有信息收发速度快,保密性好,占用网络带宽资源低,占用服务器吞吐能力低,易于编程实现等优点。

基于socket的局域网通信软件应用范围广阔,不但可以处理传统的通信需求,而且也能扩展以适应新型的网络应用,如网络教育,数据影音传输等,拥有广泛的应用前景。

目录

1设计原理基础.........................................................21.1tcp/ip简介....................................................21.1.1tcp/ip概念..................................................21.1.2tcp:传输控制协议............................................31.1.3tcp连接建立与终止...........................................31.2ip:网际协议...................................................41.3udp:用户数据报协议............................................51.4socket网络编程原理............................................62设计方法及思路.......................................................72.1思路...........................................................72.2编程方法.......................................................73系统需求分析与概要设计..............................................103.1功能需求分析..................................................103.4运行需求分析..................................................114.程序源码...........................................................124.1接收消息......................................................124.2监听..........................................................144.3发送消息......................................................154.5运行结

果......................................................194.5.1发送消息................................................194.5.2接收消息................................................194.5.3群发....................................................204.5.4退出系统................................................215出现问题及解决方法..................................................236课程设计的总结体会.................................................256.1总结..........................................................256.2展望..........................................................26参考文献.............................................................27致谢 (28)

1设计原理基础

1.1tcp/ip简介

1.1.1tcp/ip概念

首先网络协议一般是通过分不同的level进行开发的,每一层都有自己的通信功能。对于某一个协议族,比如tcp/ip,是一组不同层次上的多个协议的组合。tcp/ip通常被认为是一个四层协议系统,如图所示。

图1tcp/ip结构

如图所示,每个level都有不同工作:

1)链路层,也称为数据链路层或网络接口层,通常包括pc机自身的网络接口卡和本

机操作系统中的设备驱动程序,用来处理相关的物理接口。

2)网络层,也被称为互联网层,通常用于处理网络活动中的分组活动,例如分组的选路。在协议族中,如图所示,网络层协议主要包括了3个重要的协议。

3)传输层,其目的主要是为通过网络相连的两台主机的应用程序间提供end-to-end的通信。在tcp/ip协议族中,有两个主要的且互不相同的传输协议:tcp(传输控制协议)和udp(用户数据报协议)。其中,tcp是提供高可靠性的数据通信。它可以通过三次握手,超时设置等机制来有效地保证了数据传输的可靠性。而另外一个协议,udp 则为应用层提供一种相对要简单些的服务。它的工作只是把数据分组从发送方传输到接收方,但是数据分组能否成功达到接收方它不会给予保证。如果需要可靠性就必须得通过其他层来完成。4)应用层,主要同于上层的应用程序进行的操作。

1.1.2tcp:传输控制协议

tcp提供的是一种有保障的服务。确保了传输的可靠性,运用tcp 协议的主机在交换数据之前必须首先建立一个连接。tcp主要是利用下面的步骤来确保其服务的:

1)首先在应用程序产生tcp报文时会进行大小控制,根据算法决定的发送的数据块

大小。然后再进行发送。

2)当主机利用发出一个数据段之后,它会启动一个定时机制,如果在规定的时间内接收不到确认数据,发送方就会重发。

3)tcp的一端收到另一端发送来的数据时,它将发送一个确认。

4)tcp还有头部检测。工作是检测数据在传输过程中是否发生改变。如果存在改变,那么tcp将丢弃这个报文段并且不会发送收到这个报文段的确认。

5)ip数据报的顺次在传输过程中可能会发生改变,所以tcp将对收到的数据进行重新排序,将收到的数据重新排列以后再交给应用层处理。6)tcp的接收端会丢弃重复的数据。

7)tcp还提供控制传输数据大小的机制。如利用滑动窗口机制来控制发送和接收数据的大小。

1.1.3tcp连接建立与终止

建立连接(如图2):

1)一方首先发送一个连接申请。

2)接收方发回包含服务器的初始序号的应答。同时,也发送一个收到客户方报文的一个确认。

3)发送申请方接收到接收方的确认序号,建立连接。这个过程就是建立tcp连接的“三次握手”过程。

连接终止(如图2):

1)提出终止的一方首先发送了一个终止连接的申请。

2)当接收方收到这个请求,会发送一个确认,再发送文件终止标志。3)然后这个接收方程序结束连接,此时也会发送一个结束标志和确认。

图二三次握手与四次挥手

1.2ip:网际协议

ip协议是tcp/ip协议族中最为重要的协议。所有的其他协议产生的数据都需要以ip数据报形式来进行发送传输。而且ip提供无连接、不可靠的数据报传送服务:

1)ip协议不能保证ip数据报能成功地传输到接收方。如果发生某种错误时,如某个路由器暂时处于阻塞状态,ip也有一个简单的错误处理算法:丢弃数据,再通过发送一个特定的消息报给发送端,发送端接收到之后再进行处理。2)ip在发送数据报之后就不在关心次数据报的状态信息。每个数据报的处理是相互独立的。

ip地址分类如下图所示:

图三ip地址分类

1.3udp:用户数据报协议

udp是一个面向数据报的传输层协议。进程的每个输出都会被封装成一个udp数据报,并组装成一份待发送的ip数据报。

udp不提供可靠性。其会把应用程序传给ip层的数据发送出去,它们能否达到目的地协议并不能保证。应用程序必须关心ip数据报的长度。如果它超过网络的mtu,那么就需要对ip数据报进行分片。

1.4socket网络编程原理

通常套接口分类。原始socket,流式socket和数据报socket.流式socket确保无差错无重复的顺序的数据传送.数据报socket定义了一种无连接的服务,传输数据时相互独立,无序的,也不确保可靠性.原始socket主要用于其他的网络协议实现的测试等。

无连接设计时,服务器方通常都是在等待客户机发来信息,一有信息到来就开始进行处理,不需要先进行连接。其程序的流程可以用图四表示。

图四

2设计方法及思路

2.1思路

客户端与服务器建立连接,连接是通过申请的套接字实现的,客户打开一个套接字并把它约束在一个端口上如果成功就相当于建立一个虚拟文件以后就可以在虚拟文件上写数据并通过网络向外传送,完成连接后就可以通信了。客户机向服务器发送请求,打开一个连接后,客户机把请求消息送到服务器的停留端口上,完成提出请求操作。服务器在处理完客户的请求之后,要向客户机发送响应消息。客户通过关闭套接字来结束tcp/ip对话。

当使用tcp/ip协议发送客户服务器服务程序时,服务器需要等待任意数量客户端的连接,以便为他们提供服务。客户端连接服务器时,必须先知道服务器的名称。在tcp/ip中,就是服务器的ip地址和端口号。bind函数实现将服务器绑定到一个已知的名字上的功能。接下来要将服务器套接字设置为监听状态,这是通过listen函数完成的。在监听状态下,如果客户端向服务器发起连接请求,服务器通过调用accept函数来接受该连接请求。服务器与客户端完成连接后,就可以进行数据通信了。对于客户端来说,首先调用connect函数向服务器发出连接请求。如果服务器接受了该请求接下来就可以与服务器通信

了。

2.2编程方法

winsocket通信的步骤:

1.在服务器端的应用程序中的网络通信的步骤如下:

(1)建立服务器端的socket,开始侦听整个网络中的连接请求。

(2)当检测到来自客户端的连接请求时,向客户端发送收到连接请求的信息,

并建立与客户端之间的连接,再继续进入监听状态。

(3)在监听的过程中,如果有用户发出了请求,则服务器会产生一个新的连接

socket来处理用户的请求,而原来的socket仍然会进行监听操作。

(4)当完成通信后,服务器关闭与客户端的socket连接。

2.在客户端应用程序中的网络通信的步骤如下:

(1)建立一个客户端的socket。

(2)从命令行中得到服务器的名字,并进行查询以得到服务器的ip地址;

(3)从命令行中得到服务器所提供的端口号,以便进行下一步的操作;

(4)发送连接请求到服务器,并等待服务器的回馈信息。

(5)连接成功后,与服务器进行数据的交互。

(6)数据处理完毕后,关闭自身的socket连接,释放进行连接所分配的资源,客户端的程序运行完毕。

图五

其主要工作流程为。服务器方首先创建一个socket,再调用绑定函数将该socket和本地网络地址绑定,然后调用监听函数对socket 进行侦听同时也规定其处理大小,之后就调用接收函数来接收连接。

客户端在建立套接口后就可调用连接函数和申请和服务器建立连接.在服务器接收申请后建立连接,然后客户机和服务器之间就可以发送和接收数据.最后,待数据传送结束后,关闭socket.2.3.3c/s模型介绍。

c/s模型一般是基于连接的来交换信息的.它通常是由两部分组成:1)server服务器方一般都是在等待客户方的申请,建立connect 后再进行通信。2)client客户方会给一个已知的服务器方发送一个connect申请,当服务器端接收请求之后connect成功。

3系统需求分析与概要设计

3.1功能需求分析

(1)用户端之间的信息发送,本程序需要实现的最基本的功能。用户在界面上可以将自己需要发送的信息填入相应的对话框中,点击发送按钮后,可以将信息正常的发送给相应的其它用户,这个过程中的客户端与客户端之间使用点对点发送信息,预计利用tcp/ip协议中的udp协议,在本程序中共需要3个端口,此功能预计使用3号端口。

(2)在线用户主机ip列表的维护。在用户发送信息之前,需要选择相应的目的地端ip,这也就需要客户端拥有在线用户主机的ip 地址,这个在线主机列表的维护是需要客户端定时自动向服务器端发

送信息,服务器端收集并维护在线用户列表,再发送回客户端。需要在客户端和服务器端都使用定时器来完成此功能。此功能预计使用

1、2号端口。

(3)在c/s模式中,服务器与客户端是相互依赖的。在客户端启用以后,需要查看服务器端是否在线,服务器在线才能正常使用客户端,如果服务器不在线,则在检测一定次数以后自动退出客户端程序。在使用过程中,客户端在指定时间内未向服务器端发送信息的,服务器认为客户端下线;客户端在一定时间内未收到服务器端信息的,认为服务器已经下线,则提示用户并建议退出,在用户一定时间后没有退出的则自动关闭客户端程序。

3.2数据需求分析

(1)客户端之间聊天信息。在控件上显示时格式化,更易于用户的查看自己发送或接收到的信息。

(2)在线用户聊天信息。服务器端存放在适当的空间中,在发送给客户端时,对信息列表进行格式化,便于客户端提取信息。

(3)客户端向服务器端发送的确认在线信息。包括客户端刚刚启动时的初始化信息和在使用过程中的确认在线信息。

(4)其它程序内部可能需要设计的数据结构体

3.3性能需求分析

(1)可靠性高,能在由于系统问题或其它原因产生错误后,作出相对应处理,比如网络初始化失败、服务器不在线等,可以提示用户安全退出本程序,在出现不可知的错误以后,可以尽量安全的退出

程序。在程序的设计过程中,要求能尽可能多的设想到用户使用过程中可能发生的事件,并能在判断事件后做出相应的处理,使程序具有较高的容错性能。

(2)宜操作性,程序简单易懂,容易上手使用。设计界面是,简化界面的复杂性,模拟等现有即时通讯工具的界面,使用户能很容易看懂并使用。

(3)开发文档易理解,保证以后自己二次开发或他人接手开发时,能够清晰的理解整个系统的设计思路和实现细节。(4)模块化设计此软件的功能,不同的模块实现不同的功能,使得软件易于以后的维护与扩展,在以后可以更好的完善本软件的功能,更方便于在工作中的应用。

3.4运行需求分析

(1)用户界面

程序较小,启动速度快。可在网络中使用,有注册功能,需进行用户登录。启动后的应用界面要清爽,设计要简单明了,要具有较高的易用性。

(2)故障处理

在遇到可预知的故障与情况时,能提示用户并自动退出;在遇到不可预知的故障时能安全退出。

4.程序源码

4.1接收消息

displaydisplay=display.getdefault;

@override

publicvoidrun{

text.append(tr.iaddress+"对我display.getdefault.asyncexec (newrunnable{

@override

publicvoidnotifyresult(objectobj){tr=(talkresult)obj;t=newthread (newtask(newmynotify{createcontents;说:\r\n"+tr.content+"\r\n"+newdate+"\r\n");

if(button_1.getselection==true){

stringip=tr.iaddress.gethostaddress;stringcontent=uuid.randomuuid. tostring;byte[]bs=content.getbytes;//将要发送的内容转

//将hashset中的数据显示到table中去table.removeall;

for(iaddressa:hashset){

tableitemti=newtableitem(table,swt.none);ti.settext(new

//todo:将这个地址存到集合中(不允许重复),hashsethashset.add(tr.iaddress);text.append ("========");string[]{a.gethostaddress});成字节数组

intlength=bs.length;//要发送的内容的字节数组的长datagracketdp=null;try{

isocketaddressaddr=new

dp=newdatagracket(bs,length,addr);ds=newdatagramsocket (7890);ds.send(dp);度

isocketaddress(ip,task.receiveport);

}catch(exceptione){

e.printstacktrace;ds.close;}finally{});}));t.setdaemon(true);t.start;

threadt2=newthread(newreceiveeixtmsgtask(newmynotify{

@override

publicvoidnotifyresult(objectobj){

talkresulttr=(talkresult)obj;iaddressia=tr.iaddress;hashset.remove (ia);

display.getdefault.syncexec(newrunnable{

@override

publicvoidrun{

table.removeall;

for(iaddressa:hashset){

tableitemti=newtableitem(table,swt.none);ti.settext(new

string[]{a.gethostaddress});});

}}}));t2.setdaemon(true);t2.start;

shell.open;https://www.wendangku.net/doc/798820194.html,yout;while(。shell.isdisposed){

}if(。display.readanddispatch){}display.sleep;

4.2监听

//选择ip发送消息

table.addselectionlistener(newselectionadapter{

//退出

button_2.addselectionlistener(newselectionadapter{

@override

publicvoidwidgetselected(selectionevente){

messageboxmb=newmessagebox(shell,swt.ok|swt.cancel);mb.setmessage("是否退出。");intr=mb.open;if (r==32){

@override

publicvoidwidgetselected(selectionevente){

}tableitem[]tis=table.getselection;if(tis==null||tis.length

内容仅供参考

相关文档