2010-03-09 31 views

回答

0

您可以使用或查看开源网络库,如ACE。那里有很多好东西。

0

您可以使用处理即时消息协议的现有库,如libpurple

7

UDP协议并不是Internet聊天程序的最佳选择。 UDP数据包将被代理拦截。而UDP不保证数据包的传送。所以可能的TCP协议将是一个更好的选择。

看看Boost.Asio图书馆。它已经包含chat program的原始实现。

+0

+1对于TCP,我会为Boost.Asio(特别是它的tcpstreams)提供另一个+1。 – Tronic 2010-03-09 19:25:46

+0

我发现asio缺乏文档记录,没有得到很好的支持,甚至对于一个有经验的程序员也很难理解。我不会推荐它。 – Jay 2010-03-09 20:17:55

3

你不会在这里给我们很多细节!

如果您的目的是真正做到完全工作并且具有完整的聊天应用功能,我建议您看看XMPP这是一个开放的即时通讯协议。 Here是实施它的一些库的列表。

如果您的目的是学习网络编程,并且您对UDP与TCP更感兴趣,那么对于聊天应用程序而言,UDP是不好的选择,因为它不能保证数据完整性或排序。您的邮件可能(并且将会!)以错误的顺序收到,有些甚至可能会丢失。 TCP会为你做检查。

在之间(一个很简单的聊天应用程序),你可以实现你自己的协议,并利用图书馆人在这里建议像Boost.asioACEPOCO,甚至wxWidgetsQt,这将缓解插座处理并提供你需要构建最后2个桌面应用程序。

0

UDP就像是一种“拍摄而忘记”的协议。它速度很快,但如果您使用它来通过互联网进行通信,则不能保证您的信息将被收到。即使是局域网,你的数据包仍然可能会丢失。使用TCP会更方便,它可以确保您的数据包没有错误地按照您发送的顺序到达。

相关问题