用C编写一个简单的voip应用程序

use*_*363 5 c voip sip

我想开始编写一个简单的Voip应用程序,它将帮助我与我的一个朋友交谈.喜欢Skyp.

我搜索到互联网,结果发现像一些有用的链接

看起来不错.你说的话 ?

哦,我忘了说我想用C写这个应用程序.你的意见是什么?你更喜欢这项工作的其他语言吗?是个不错的选择?

如果有人尝试过这样的事情,请告诉我你的经历.如何启动,如果有一个很好的教程,使用什么语言和任何其他有用的信息.

谢谢你的时间.

Ilm*_*nen 11

好吧,写一个简单的VOIP程序作为学习经验当然是一个很好的理由.

首先,您应该选择合适的音频编解码器并学会使用它.我推荐SPEEX.

其次,您需要决定如何通过网络发送编码数据.一个简单的TCP套接字可以工作,至少有正确的选项(我在TCP_NODELAY这里特别考虑),但大多数VOIP应用程序似乎使用UDP直接传输数据包,交易可靠性以提高效率.因此,您应该学习如何设置和使用UDP套接字.

当然,您还需要学习如何阅读和播放音频.详细信息取决于您使用的语言和平台.

一旦掌握了所有这些,就应该非常简单.从麦克风读取音频,对其进行编码,通过网络发送,从网络读取传入数据,解码,播放.当然,你已经同时做了好几件事 - 如果你的程序在等待可能会或可能不会到达的传入数据时停止发出声音,那就没有用了.

解决这个问题的一种方法是将程序分成两个线程:一个用于监听和传输,另一个用于接收和回放.另一种解决方案是使用非阻塞I/O和事件驱动编程来处理来自多个源的数据.此选项的一个可能的优点是,它可以使您更容易实现电话会议,您可以从多个人发送和接收音频.

当然,我自己从未尝试过,所以我真的只是在这里猜测.