如何开始跨平台网络编程?

时间:2011-08-01 22:06:46

标签: c++ c linux unix tcp

我正在考虑购买this book以了解有关C / C ++网络编程的更多信息:

我只是想知道我/是否需要一本Windows等效的书(我打算在两种操作系统上编码)。我不确定窗口BSD套接字的演变有何不同。

我主要购买这个以最终编写将在计算机之间传输数据的代码。

6 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

完成这两项工作后,我肯定会从BSD版本开始。你不仅会在这两个平台(和其他平台)上学到一些有用的东西,而且你会更好地了解底层的真实情况。

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

  • 您计划在多长时间内将Windows添加到网络编程目录中,然后
  • 您希望您的代码是跨平台的

如果您希望您的代码是跨平台的,我会查看Boost或其他一些跨平台网络库,以便快速到达目的地。如果您只是想开始学习网络编程,然后将Windows网络编程专门添加到您的技能组中,我将按照您的计划开始使用BSD API,然后获取专门为Windows执行此操作的资源。你准备好了。当我从Linux迁移到Windows时,我发现学习Windows的做法是值得花费额外的时间。

答案 2 :(得分:1)

即使您可以使用Windows API进行套接字编程,我建议您学习BSD sockets API(或POSIX套接字API)并在两者中使用它:Windows Linux。

Windows非常支持BSD套接字API。

您将从单个代码库中获益,而不是编写两次相同的功能。此外,BSD / POSIX API也可用于许多其他UNIX版本(MAC OS X,HP / UP,AI / X,BSD,您的名字)。

答案 3 :(得分:1)

对于简单的应用程序,BSD套接字在Windows中可以正常工作。但对于花里胡哨,我真的建议阅读“本土”winsock。异步套接字在GUI应用程序中非常好用,如果你想要高速性能,而不必处理线程(如果你愿意,你可以,但Windows会为你做的话),Overlapped I / O只是蜜蜂的膝盖。 / p>

This读得很好。

答案 4 :(得分:0)

Network Programming for MS Windows。我还没有看过这个,但肯定会这样做,因为它看起来很有希望。

答案 5 :(得分:0)

不要花钱 - 我没有亲自找到比Beej更好的网络指南。 http://beej.us/guide/bgnet/