因此,我正在使用Boost::Asio(或者,如果愿意的话,也可以只是使用Asio)来进行许多高性能的网络编程,并且对TCP和UDP协议(protocol)的本质都有相当的了解。不过,我想知道的是,尽管我仍然不了解自己,但我仍然不认为自己是网络方面的专家,所以这是一种很好的方式来构造网络程序员应了解的基本知识,特别是对于那些试图提高其大型网络性能的人而言。应用程序?
关于程序员以及他们应该了解的有关内存的文章非常多(请参阅下文),所以我想知道是否有人为网络建立了类似的东西。
What every programmer should know about memory
最佳答案
您应该知道的一些提示标志着我的头脑:
\r\n\r\n
是什么意思?)更新:基于协议(protocol)的设计是什么意思?
考虑HTTP,即网络协议(protocol)。 Apache,IIS,Lighttpd,Firefox,Opera,WebKit等。所有这些软件都使用HTTP。他们中很可能没有人共享这样做的代码。缺点当然是由于净代码量导致错误发生的可能性增加。有很多优点:
在设计网络协议(protocol)时,您可以构建几个API,每个API都针对特定的用例量身定制。或者您可以构建一个,由您自己决定。联网软件组件可以彼此独立升级。基本上,您所听到的所有关于Java/C#接口(interface)和C++抽象类的东西都很好,但是适用于网络层而不是编程语言层。