5 ms·
Ask HN: Books on network programming patterns?
Hello, HN!
I've recently been getting deeper into node.js for things other than your typical web app, and have encountered a topic I'm not familiar with: network programming. I am completely ignorant on the topic and seek some guidance.
Can anyone recommend any high-level books (or other resources) on network programming? For example, something that covers patterns like PUB/SUB, REQ/RES, Router/Dealer, etc.
Thanks in advanced!
- jvoorhis 12y agoSince your example patterns seem to be informed by ZeroMQ, I recommend checking out the online 'zguide' book at http://zguide.zeromq.org/page:all http://zguide.zeromq.org/page:all.
- deleted 12y ago[deleted]
- nextos 12y agoCheck out the Pattern-Oriented Software Architecture volumes. You can also draw a lot of inspiration from the Erlang literature, and CTM.
- angersock 12y agoIf you are learning about networking, and not just using somebody else's library, Beej's guide is an excellent starting point: http://beej.us/guide/bgnet/ http://beej.us/guide/bgnet/
- MartinMond 12y agoJust Open a Socket - Connecting Applications to Distributed Systems is a great talk to watch: https://www.youtube.com/watch?v=jytJXjI0oQU https://www.youtube.com/watch?v=jytJXjI0oQU https://speakerdeck.com/seancribbs/just-open-a-socket-connecting-applications-to-distributed-systems https://speakerdeck.com/seancribbs/just-open-a-socket-connec... Other talks from ricon.io and the various Erlang conferences are great too, but those are more about distributed systems and not primarily network programming. But since you mentioned the ZeroMQ patterns that should be just what you want. http://thinkdistributed.io/ http://thinkdistributed.io/ http://ricon.io/ http://ricon.io/ https://www.youtube.com/user/ErlangSolutions/videos https://www.youtube.com/user/ErlangSolutions/videos
- adamnemecek 12y agoYou might find the books "C++ Network Programming, Volume I: Mastering Complexity with ACE and Patterns"[0] and "C++ Network Programming, Volume 2: Systematic Reuse with ACE and Frameworks"[1] useful. They talk about implementation of the "Adaptive Communication Environment" [2] which is an open-source project for network programming. Also, as nextos mentioned below, the "Pattern-Oriented Software Architecture" series. [0] http://www.amazon.com/Network-Programming-Volume-Mastering-Complexity/dp/0201604647/ http://www.amazon.com/Network-Programming-Volume-Mastering-C... [1] http://www.amazon.com/Network-Programming-Volume-Systematic-Frameworks/dp/0201795256 http://www.amazon.com/Network-Programming-Volume-Systematic-... [2] http://en.wikipedia.org/wiki/Adaptive_Communication_Environment http://en.wikipedia.org/wiki/Adaptive_Communication_Environm...
- keithba 12y agoEnterprise Integration Patterns: http://www.amazon.com/Enterprise-Integration-Patterns-Designing-Deploying/dp/0321200683/ref=pd_bxgy_b_text_y http://www.amazon.com/Enterprise-Integration-Patterns-Design... http://www.eaipatterns.com/ http://www.eaipatterns.com/ Covers stuff like: RPC, messages, channels, etc.
- astigsen 12y agoThe classics for learning about network programming is the TCP/IP Illustrated series by W. Richard Stevens: TCP/IP Illustrated, Volume 1: The Protocols http://www.amazon.com/TCP-Illustrated-Volume-Addison-Wesley-Professional/dp/0321336313 http://www.amazon.com/TCP-Illustrated-Volume-Addison-Wesley-... TCP/IP Illustrated, Volume 2: The Implementation http://www.amazon.com/TCP-IP-Illustrated-Implementation-Vol/dp/020163354X http://www.amazon.com/TCP-IP-Illustrated-Implementation-Vol/... TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP, and the UNIX Domain Protocols http://www.amazon.com/TCP-Illustrated-Vol-Transactions-Protocols/dp/0201634953 http://www.amazon.com/TCP-Illustrated-Vol-Transactions-Proto... While they start at much lower level than generic patterns, they build the basis to understand the core of networking, and the the later books go into details about effective usage of the protocols.
- adamnemecek 12y agoThe issue with those books is that even if you have read them, you might still have a hard time writing networking code as they don't talk about the patterns which is what I think OP wants to learn.
- spikyobjects 12y agoNot directly answering your question, but: ZeroMQ is a network programming library that uses and encourages the use of "patterns". Take a look at the (excellent) ZeroMQ manual.