适用于 Windows 操作系统的 TCP/IP 书籍
我听说过这些 TCP/IP 书籍,它们显然专注于 UNIX 中的 TCP/IP
TCP图解-Vol.1
TCP-Illustration-Vol.2
除了这些书中介绍的代码之外, TCP/IP 实现与 Windows 之间有什么区别吗?
如果是的话,您能推荐一些其他 Windows 平台的 TCP/IP 书籍吗?
I've heard about these TCP/IP books which apparently seem to focus on TCP/IP in UNIX
TCP-Illustrated-Vol.1
TCP-Illustrated-Vol.2
Apart from the code introduced in these books, Are there any differences between TCP/IP implementation from windows?
If yes, Can you suggest some other TCP/IP books for windows platform?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Microsoft Windows 网络编程就是这本书。它已经很旧了,但这并不重要。这不是一个简单的主题,这本书可能有点密集,也不是一本适合傻瓜的书,但我还没有找到一本关于这个主题的更好的书。
当然,您可能还想拥有您链接到的两本史蒂文斯的书,因为它们非常适合独立于平台的东西。
至于差异,Windows 或多或少地实现了 BSD 套接字 API,但也提供了通常更适合 Windows 平台的替代 API。如果您正在寻求可扩展性和服务器端编码,那么重叠 I/O 和 IO 完成端口之类的东西是在 Windows 上采取的更明智的途径。 BSD API 可能适合简单的服务器和单线程客户端。如果您需要一些基于 IO 完成端口的设计的示例代码,那么我有一些 在这里。
Network Programming for Microsoft Windows is THE book. It's quite old, but that doesn't matter. It's not a simple subject, the book can be a bit dense and it's not a hand holding 'for dummies' book, but I've yet to find a better book on the subject.
Of course, you also probably want to have the two Stevens' books that you link to to hand as well as they're great for the platform independent stuff.
As for differences, well, Windows more or less implements the BSD socket API but also provides alternative APIs which are often more appropriate for the Windows platform. Things like overlapped I/O and IO Completion Ports are a much more sensible route to take on Windows if you are looking for scalability and server side coding. The BSD API is probably fine for simple servers and single threaded clients. If you need some example code for IO Completion Port based designs then I have some here.
我早在 2009 年就问过这个问题。实际的 TCP/IP 协议就是这样——一个协议。在底层,Unix 和 Windows 以相同的方式实现 TCP/IP;否则他们怎么能够互相交谈呢?
正如 Len 所说,差异在于 API。 Windows 实现了 BSD API,因此您可以进行基本的便携式套接字编程,但如果您想要更高性能的东西,则必须深入研究平台细节,或使用第三方库。我想既然你问这个问题,你想自己学习这些东西。
我实现了一个基于 IO 完成端口的系统,虽然我无法分享确切的代码,但我可以向您指出我从中学到的一些资源,例如 此代码项目页面, 此 MSDN文章,还有这个。
I asked this question back in 2009. The actual TCP/IP protocol is simply that - a protocol. Under the hood, Unix and Windows implement TCP/IP in the same way; how else would they be able to talk to each other?
The difference, as Len said, is in the APIs. Windows implements the BSD API so you can do basic portable socket programming, but if you want something with higher performance, you have to delve into platform specifics, or use a third party library. I assume since you're asking this question, you want to learn this stuff for yourself.
I implemented a IO Completion Port based system, and while I can't share the exact code, I can point you towards some of the resources I learned from, such as this codeproject page, this MSDN article, and this one.