因此,我正在使用Boost :: Asio(或者只是Asio)进行大量高性能网络编程,并且非常可靠地掌握TCP和UDP协议的基本要素。我想知道,因为尽管我知道,我仍然不认为自己是网络专家,什么是构建网络程序员应该知道的基本要素的好方法,特别是那些试图推动其大型网络性能的人应用
关于程序员和他们应该了解的内存(见下文)有一篇很棒的文章,所以我想知道是否有人为网络安排了类似的东西。
答案 0 :(得分:14)
有些项目指出了我应该知道的事情:
\r\n\r\n
在HTTP中的含义是什么?)更新:基于协议的设计意味着什么?
考虑HTTP,即网络协议。 Apache,IIS,Lighttpd,Firefox,Opera,WebKit等......所有这些软件都讲HTTP。很可能他们都没有共享代码来这样做。当然,缺点是由于代码净量导致的错误可能性增加。有许多好处:
当您设计网络协议时,您可以自己构建几个API,每个API都针对特定用例进行定制。或者你可以建立一个,这取决于你。网络化软件组件可以相互独立升级。基本上,您听到的所有内容都与Java / C#接口和C ++抽象类有关,但应用于网络层而不是编程语言层。