TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Books on network programming patterns?

32 pointsby mgmeyersalmost 11 years ago
Hello, HN!<p>I&#x27;ve recently been getting deeper into node.js for things other than your typical web app, and have encountered a topic I&#x27;m not familiar with: network programming. I am completely ignorant on the topic and seek some guidance.<p>Can anyone recommend any high-level books (or other resources) on network programming? For example, something that covers patterns like PUB&#x2F;SUB, REQ&#x2F;RES, Router&#x2F;Dealer, etc.<p>Thanks in advanced!

8 comments

astigsenalmost 11 years ago
The classics for learning about network programming is the TCP&#x2F;IP Illustrated series by W. Richard Stevens:<p>TCP&#x2F;IP Illustrated, Volume 1: The Protocols <a href="http://www.amazon.com/TCP-Illustrated-Volume-Addison-Wesley-Professional/dp/0321336313" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;TCP-Illustrated-Volume-Addison-Wesley-...</a><p>TCP&#x2F;IP Illustrated, Volume 2: The Implementation <a href="http://www.amazon.com/TCP-IP-Illustrated-Implementation-Vol/dp/020163354X" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;TCP-IP-Illustrated-Implementation-Vol&#x2F;...</a><p>TCP&#x2F;IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP, and the UNIX Domain Protocols <a href="http://www.amazon.com/TCP-Illustrated-Vol-Transactions-Protocols/dp/0201634953" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;TCP-Illustrated-Vol-Transactions-Proto...</a><p>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.
评论 #7974111 未加载
jvoorhisalmost 11 years ago
Since your example patterns seem to be informed by ZeroMQ, I recommend checking out the online &#x27;zguide&#x27; book at <a href="http://zguide.zeromq.org/page:all" rel="nofollow">http:&#x2F;&#x2F;zguide.zeromq.org&#x2F;page:all</a>.
评论 #7973913 未加载
angersockalmost 11 years ago
If you are learning about networking, and not just using somebody else&#x27;s library, Beej&#x27;s guide is an excellent starting point:<p><a href="http://beej.us/guide/bgnet/" rel="nofollow">http:&#x2F;&#x2F;beej.us&#x2F;guide&#x2F;bgnet&#x2F;</a>
adamnemecekalmost 11 years ago
You might find the books &quot;C++ Network Programming, Volume I: Mastering Complexity with ACE and Patterns&quot;[0] and &quot;C++ Network Programming, Volume 2: Systematic Reuse with ACE and Frameworks&quot;[1] useful. They talk about implementation of the &quot;Adaptive Communication Environment&quot; [2] which is an open-source project for network programming. Also, as nextos mentioned below, the &quot;Pattern-Oriented Software Architecture&quot; series.<p>[0] <a href="http://www.amazon.com/Network-Programming-Volume-Mastering-Complexity/dp/0201604647/" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;Network-Programming-Volume-Mastering-C...</a><p>[1] <a href="http://www.amazon.com/Network-Programming-Volume-Systematic-Frameworks/dp/0201795256" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;Network-Programming-Volume-Systematic-...</a><p>[2] <a href="http://en.wikipedia.org/wiki/Adaptive_Communication_Environment" rel="nofollow">http:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Adaptive_Communication_Environm...</a>
MartinMondalmost 11 years ago
Just Open a Socket - Connecting Applications to Distributed Systems is a great talk to watch:<p><a href="https://www.youtube.com/watch?v=jytJXjI0oQU" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=jytJXjI0oQU</a> <a href="https://speakerdeck.com/seancribbs/just-open-a-socket-connecting-applications-to-distributed-systems" rel="nofollow">https:&#x2F;&#x2F;speakerdeck.com&#x2F;seancribbs&#x2F;just-open-a-socket-connec...</a><p>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.<p><a href="http://thinkdistributed.io/" rel="nofollow">http:&#x2F;&#x2F;thinkdistributed.io&#x2F;</a> <a href="http://ricon.io/" rel="nofollow">http:&#x2F;&#x2F;ricon.io&#x2F;</a> <a href="https://www.youtube.com/user/ErlangSolutions/videos" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;user&#x2F;ErlangSolutions&#x2F;videos</a>
keithbaalmost 11 years ago
Enterprise Integration Patterns:<p><a href="http://www.amazon.com/Enterprise-Integration-Patterns-Designing-Deploying/dp/0321200683/ref=pd_bxgy_b_text_y" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;Enterprise-Integration-Patterns-Design...</a><p><a href="http://www.eaipatterns.com/" rel="nofollow">http:&#x2F;&#x2F;www.eaipatterns.com&#x2F;</a><p>Covers stuff like: RPC, messages, channels, etc.
nextosalmost 11 years ago
Check out the Pattern-Oriented Software Architecture volumes.<p>You can also draw a lot of inspiration from the Erlang literature, and CTM.
spikyobjectsalmost 11 years ago
Not directly answering your question, but: ZeroMQ is a network programming library that uses and encourages the use of &quot;patterns&quot;. Take a look at the (excellent) ZeroMQ manual.