我如何开始与跨平台网络编程

How can I get started with cross platform network programming?

本文关键字:跨平台 网络编程 开始 何开始      更新时间:2023-10-16

我正在考虑购买这本书来学习更多关于C/c++网络编程的知识:

我只是想知道是否有/我需要一本windows等效的书(我计划在两个操作系统上编码)。我不确定BSD套接字和windows的发展有什么不同。

我买这个主要是为了最终编写代码,将数据流在计算机之间。

"将套接字应用程序移植到Winsock"

做了这两件事之后,我肯定会从BSD版本开始。你不仅可以在这两个平台(和其他平台)上学到有用的东西,还可以更好地了解下面的情况。

我认为你需要问自己的问题是:

  • 你打算多快将Windows添加到你的网络编程库中,AND
  • 你希望你的代码是跨平台的吗

如果你想让你的代码是跨平台的,我会看看Boost或其他一些跨平台的网络库,让你快速实现。如果你只是想从一般的网络编程开始学习,然后将Windows网络编程专门添加到你的技能集中,我会按照你的计划从BSD API开始,然后在你准备好时获得专门针对Windows的资源。当我从Linux转到Windows时,我发现花额外的时间学习Windows的工作方式是值得的。

即使你可以使用Windows API来做套接字编程,我还是建议你学习BSD套接字API(或POSIX套接字API),并在Windows 和Linux 中使用它。

Windows对BSD sockets API有很好的支持。

并且您将从单个代码库中获得巨大的好处,而不是编写两次相同的功能。此外,BSD/POSIX API也可用于许多其他UNIX版本(MAC OS X, HP/UP, AI/X, BSD,你能想到的)。

对于简单的应用程序,BSD套接字在Windows中工作得很好。但是,对于附加功能,我建议您仔细阅读"原生"winsock。异步套接字在GUI应用程序中真的很好,如果你想要高速性能,而不必处理线程,重叠I/O就是最好的选择(如果你想要,你可以这样做,但Windows会为你做的)。

有微软Windows的网络编程。我还没有读过这篇文章,但我肯定会读的,因为它看起来很有希望。

先别花你的钱——我个人还没有找到比Beej更好的社交指南。http://beej.us/guide/bgnet/