[HN Gopher] Beej's Guide to Network Programming (1994-2020)
___________________________________________________________________
Beej's Guide to Network Programming (1994-2020)
Author : ColinWright
Score : 766 points
Date : 2021-02-11 10:31 UTC (12 hours ago)
(HTM) web link (beej.us)
(TXT) w3m dump (beej.us)
| indigochill wrote:
| This guide saved my butt in school when I suddenly had to do C
| network programming with no relevant experience.
| julianh95 wrote:
| I share the same experience as I am currently taking CS6200 at
| Georgia Tech.
| indigochill wrote:
| Haha, that was the exact class where I used it! Loved that
| class, though. By far my favorite in their MS program. It
| awakened a love for operating systems (and the general
| applicability of the concepts). AOS was also good and made me
| appreciate the point of cloud computing more.
| stjohnswarts wrote:
| I credit beej to my first serious job. I worked through the
| network and concurrency guides and landed the job that started me
| off on my career. Thanks Beej! Please keep it up :D
| seishan wrote:
| I remember reading this when I was in high school out of
| curiosity. Thanks again for writing this (and many more), Beej.
| jason0597 wrote:
| Beej has had great guides for many things on the internet for
| decades. I fondly remember learning C from Beej's guide to C [1]
| upon being recommended by WinterMute (from the Nintendo
| homebrewing community). Best introduction to programming I've
| seen by far!
|
| [1]: https://beej.us/guide/bgc/
| jjice wrote:
| One if the best guides/books on programming I've ever read. This
| taught me the foundations of network programming and the fact
| it's available for free is incredible. I just took a second and
| ordered the paperback right now because of how fantastic it is.
|
| Aside from the book being really in-depth and understandable,
| Beej adds in quite a bit of humor and that is something I love in
| a good software book.
| scudd wrote:
| Currently taking Graduate Introduction to Operating Systems at
| Georgia Tech, and this guide has been like a bible for me. Huge
| thanks to Beej!
| archsurface wrote:
| This site has become groundhog day, should just automate re-
| submission: https://hn.algolia.com/?q=beej
| kebman wrote:
| "Some of you might want to do things the Pure Windows Way. That's
| very gutsy of you, and this is what you have to do: run out and
| get Unix immediately!"
|
| He's just joking of course. At first glance this seems like a
| great read. And he's funny too! :)
|
| I do wonder how much of this is applicable to Rust though.
| kruxigt wrote:
| "At first glance this seems like a great read" Agree!
| hoseja wrote:
| Sadly the Windows asynchronous (or something, I never quite got
| it) networking API seems very powerful. But I never found a
| comprehensible manual/tutorial for it.
| whizzter wrote:
| Dr.Dobbs has had at least 2 articles on it.
|
| https://www.drdobbs.com/open-source/io-multiplexing-
| scalable... (Also covers select and /dev/poll but lacks
| epoll,kqueue)
|
| https://www.drdobbs.com/cpp/multithreaded-asynchronous-io-
| io...
|
| I remember chatting in the fringes when nodeJS was doing
| their proper win32 porting and they did have some issues
| getting things stable due to lack of documentation but iirc
| got some help from MS so the libuv code should be usable as a
| reference for behaviours (As well as being fairly battle
| tested by now).
|
| https://github.com/libuv/libuv/tree/v1.x/src/win
| the_only_law wrote:
| I've been trying to figure out the entire windows networking
| stack recently, particularly some more obscure parts and the
| docs have been pretty bad unfortunately. A lot of the higher
| level stuff fees really superficial and the lower level stuff
| it's it own mess (all sorts of broken links and links to
| outdated versions in the NDIS docs).
| ghoshbishakh wrote:
| Good for getting started with network programming. My university
| refers this for the computer networks lab course.
| tumblewit wrote:
| Georgia Tech's Graduate Introduction to Operating systems OMSCS
| class rings a bell. Socket programming was fun in that class. And
| by fun I mean hours of hair pulling while debugging.
| wackspurt wrote:
| My latest immersion into Beej's guide was through the GIOS
| course too! It also opened my eyes to the amount of
| familiarity/expertise my older co-workers had with systems
| programming (they helped me when when they heard me whining
| about the socket programming assignment). It taught me not to
| dismiss someone just because they don't know the latest
| TensorFlow API/Neurips paper.
| person_of_color wrote:
| Was OMSCS worth it?
| peter_retief wrote:
| This is so useful I can't believe I have never seen it before.
| Shared404 wrote:
| Be sure to check out Beej's other guides. They're some of the
| most useful I've seen.
| lxeiqr wrote:
| Despite of its age, Beej's Guide is still one of the best
| introductions to network programming I've seen so far. I love how
| apart from the basic and concise explanation of TCP and UDP (and
| generally sockets in UNIX-like environments), there's also a
| separate, short "Advanced Techniques" section that can be very
| useful if you want to explore the subject even further.
| freakynit wrote:
| Such simple, but informative guides should be how official
| documentations should be written.
| [deleted]
| armadsen wrote:
| I had the privilege of working with Beej for a couple years at my
| last job. He was one of my favorite coworkers I've ever had. Just
| great to be around and work with. Incredibly sharp, but also
| humble, easygoing, and eager to just solve problems.
| beej71 wrote:
| The feeling is mutual!
| gspr wrote:
| I had the most wonderful deja vu the other day. I needed to do
| some serious-ish network programming for the first time in 20
| years. I googled around a bit for a refresher. What do I find?
| Beej's guide - the same Beej's guide that was my first
| introduction to the topic 20 years prior!
|
| It was wonderfully poetic to me that the same document that
| taught me how to make a wildly dangerous IRC bot in my teenage
| room for the lulz also re-taught me the stuff I needed to deliver
| a low-latency ML offloading demo at my serious(-ish) job 20 years
| later. Gave me a real warm fuzzy feeling :-)
|
| PS:
|
| HN disucssion anno 2015:
| https://news.ycombinator.com/item?id=9445692
|
| Anno 2017: https://news.ycombinator.com/item?id=13983212
| toast0 wrote:
| > It was wonderfully poetic to me that the same document that
| taught me how to make a wildly dangerous IRC bot in my teenage
| room for the lulz also re-taught me the stuff I needed to
| deliver a low-latency ML offloading demo at my serious(-ish)
| job 20 years later. Gave me a real warm fuzzy feeling :-)
|
| My experience with CTCP flooding large channels channels and
| causing netsplits in my youth provided a perfect base of
| understanding for when my production servers started flooding
| status updates to each other and couldn't stay connected.
|
| PS sorry, undernet admins and users. Also, thanks to the admin
| on #quebec who asked me to flood his channel so he could tune
| his bot to block flooders.
| gspr wrote:
| I thought I'd add: I know that this is a very normal thing in
| some sense. Many textbooks remain relevant for decades and
| decades (I'm a mathematician, we know this perhaps better than
| most). But still, it's rarely the case for an online document -
| one about computer technology even more so!
| pknerd wrote:
| Would be interesting to see a Go or Rust version not it.
| dang wrote:
| Past discussions on this classic include:
|
| 2017 https://news.ycombinator.com/item?id=13983212
|
| 2017 (a bit) https://news.ycombinator.com/item?id=13670971
|
| 2016 (a bit) https://news.ycombinator.com/item?id=12402313
|
| 2015 https://news.ycombinator.com/item?id=9445692
|
| 2015 (a bit) https://news.ycombinator.com/item?id=9623813
|
| 2013 https://news.ycombinator.com/item?id=5241220
|
| 2009 https://news.ycombinator.com/item?id=584557
|
| 2008 https://news.ycombinator.com/item?id=337371 ("Wow, I first
| read this when I was in high school. It's still being updated?")
| [deleted]
| beej71 wrote:
| All your kind words are literally bringing tears to my eyes--
| thank you!
|
| My current plan is to keep writing freely-available guides for as
| long as I can reach the keyboard. And maybe even longer with what
| will undoubtedly be awesome futuristic speech recognition--or
| mind-reading! That's not scary at all!
|
| I'm leaning on bash/zsh scripting one I finish the utterly
| gigantic C guide I'm on now... hopefully later this year. But I'm
| always open to suggestion for topics... :)
| runetech wrote:
| Your original document was the quintessential resource for me
| in the 90s. Heartfelt _thank you_ for putting me on track back
| then. Highly appreciated!
| bretpiatt wrote:
| I've pointed so many folks over the years to your guide.
|
| Keep up the great work.
|
| P.S. Each time I do refer folks over or see a thread like this
| gives me fond memories of the O'Connell labs and the
| opportunities we had to enjoy networking in the early days.
|
| The fun of the HP bug of the week and running a unix farm with
| shell accounts for all of us students.
| UseStrict wrote:
| Amazing! This guide got me into network programming back when I
| was still on rural dial-up. It helped me through various
| programming courses in high school and university, and I still
| occasionally refer to it from time to time. Thanks for your
| contributions, they really improved my quality of life!
| tetrahedr0n wrote:
| For the brief amount of time I was your student at Lambda, you
| made a huge impression. Beyond this tutorial, you're a gifted
| teacher and inspirational person. Much respect and love!
|
| I'll read your future-brainwave-transmission tutorials,
| anytime, even if they run the risk of causing minor insanity!
| ilikedthatone wrote:
| you are the definition of hacker for me, thank you for your
| time, efforts, sense of humour, empathy, existence.
| ColinWright wrote:
| When was the first edition? I feel like I remember using it in
| the early 90s ... maybe 1991? The mods have put the dates
| "1994-2020" in the title, but I feel like I remember it from
| earlier than that.
| paraboul wrote:
| Your page was what bring me into "magical" programming as a
| teen 20 years ago. Being able to communicate with a remote
| program on a free shell and actually understand how it works
| was the best feeling.
|
| This indirectly shaped my life in many ways. Thank you!
| morty_s wrote:
| Echoing a similar sentiment here, Thank You!!!
| Issaclabs wrote:
| You have touched so many people and have created real value
| with your work
| daotoad wrote:
| This guide was instrumental in letting me understand sockets
| and network programming. I've probably recommended it to at
| least a hundred other people over the years.
|
| You have made a huge positive impact.
|
| Thank you.
| aynsof wrote:
| Your guide single-handedly got me through network programming
| in C at university. This was back in the early 2000s. Thank
| you! And I'm so happy to see your guide still getting updated.
| int_10h wrote:
| How funny - it got me through the same course but barely 2-3
| years ago.
| tpl wrote:
| Wonderful resource, really helped me have fun playing with C
| sockets. Thank you Beej!
| stiff wrote:
| Production failures due to bugs in both TCP-based servers and
| clients happen all the time, long time ago I invested a little
| time to learn basic socket programming in C and the ROI on this
| has really been spectacular. "Unix Network Programming" by
| Stevens is a great book on this topic, in particular it carefully
| discusses all the different ways things can go wrong. Wish there
| was something more up to date that could be recommended, but I
| don't know anything of comparable quality, so I think you still
| have to read it and later work out all the Linux-specific
| details, more modern APIs like epoll etc.
| TheSpiciestDev wrote:
| As soon as I read the title, I felt joy! I had followed this
| guide when I had began programming early on and had a great
| experience. I recognize it by its name alone!
| folex wrote:
| Strangely no mention of High Performance Browser Networking
| https://hpbn.co
|
| I also would mention Distributed systems for fun and profit
| http://book.mixu.net/distsys/ while being not exactly about
| network programming, it is likely a next step for anyone who's
| building apps that is scattered across several backends/services
| connected by the network
| jcrubino wrote:
| Beej's is the classic of classics.
| [deleted]
| idolaspecus wrote:
| It sounds like Beej needs to write a "Beej's Guide to Writing
| Guides".
| mbag wrote:
| Glad to see this is being updated. I have used Beej's Guide to
| learn network programming back in 2013 or 2014, and it was such a
| great resource.
| [deleted]
| davidw wrote:
| Among other things, Beej has been a leader in putting together
| events and connecting software people here in Bend, Oregon. Well,
| when getting together was a thing, at least.
| easytiger wrote:
| Pretty much learned c via this back in the day. It feels like it
| was in the 90s, but might have been early 2000s
|
| edit: it was the 90s
| master_yoda_1 wrote:
| This was my first intro to network programming in school very
| very long time.
| globular-toast wrote:
| I've always loved networking and recently implemented an IP stack
| just for fun. It doesn't take that long to be able to write ping
| yourself and ping Internet hosts. I was going to go as far as TCP
| but haven't gone there yet.
|
| I think it's now time to read this and find out all the stuff I
| got wrong and cement the stuff I got right.
| toast0 wrote:
| I recently wrote a good enough tcp to layer an http server on
| top. It's not very good, but I did it, and now I can use
| someone else's ;)
|
| PS Hello fellow toast
| globular-toast wrote:
| Hello :)
|
| I'll definitely finish mine one day then. I was more
| interested in the IP layer when I did mine and learning about
| routing. TCP seemed a bit too complicated and not that
| interesting, but it would be cool to have at least once gone
| from a raw socket to HTTP.
|
| I know exactly what you mean as well. When using technology
| there is a comfort in knowing that you _could_ conceivably
| implement it yourself if you absolutely had to.
| the_only_law wrote:
| Networking is probably one of the parts of computers I've been
| consistently interested in over the years. I was recently
| looking at the man page for the addresss_families supported and
| there's all sorts of crazy stuff that's been adapted to the
| socket API in there.
|
| I've been working on developing myself a custom ISDN stack
| recently. So far it's just been me trying to design it at a
| high level without falling to feature creep.
| globular-toast wrote:
| I think what I love about it is the Internet is the biggest
| machine in the world! I can literally flip bits on the other
| side of the world by pressing some of these buttons here on
| my desk. After becoming pretty much accustomed to living
| behind an IPv4 NAT my interest was rekindled when my ISP
| deployed IPv6 and all of a sudden each device in my house has
| a real public IP address.
| yrgulation wrote:
| To anyone writing tutorials or guides, this is the gold standard
| - at least for me. After many years I still remember writing my
| first tcp client following this tut. I wish more content would be
| as focused and concise as this.
| mvh wrote:
| At Northeastern we use this guide as the canonical "textbook" for
| the graduate distributed systems course.
| pingiun wrote:
| > s/he
|
| Just use they, it reads better and includes everyone instead of
| people with binary genders
| specialist wrote:
| Agreed.
|
| I've been retraining myself to default to singular they.
| https://en.wikipedia.org/wiki/Singular_they
|
| Old dog, new tricks. But I'm slowly adapting.
| _underfl0w_ wrote:
| I've also personally never understood the slash syntax. Since
| one word requires the "s" and the other doesn't, shouldn't we
| use parentheses like when words may or may not be plural? e.g.
| "(s)he" like you might say "socket(s)" or "Unix(es)"?
|
| Moot point if it doesn't solve the issue of it still being
| binary, I guess.
| dragonwriter wrote:
| Ironically, with "they" becoming a more common specific-
| individual-identity-pronoun preference, it is at risk of losing
| its inclusivity, and of becoming as problematic for unknown
| individual preference as she and he.
|
| But that's a problem for the future, right now "they" is
| usually the best inclusive pronoun available.
| known wrote:
| https://beej.us/guide/bgipc/html/multi/index.html is also good
| sandes wrote:
| download as pdf
| https://buzon.io/downloads/75e686f94e1d4a599f2ee9ad521123865...
| _underfl0w_ wrote:
| Or you can get it from the official source [0] and not some PDF
| on a file sharing site linked from an HN comment.
|
| [0] https://beej.us/guide/bgnet/
| yakubin wrote:
| Socket programming never clicked for me before I learned about
| the protocols themselves first. My brain just rejected using an
| API for something I didn't understand. So if you're like me, I
| highly recommend reading Comer's "Internetworking with TCP/IP"
| first, and sitting down to socket programming later.
| frr149 wrote:
| That's three volumes... Anything shorter you can recommend?
| great_wubwub wrote:
| You really only need the first one.
| gnfargbl wrote:
| Volume 1 of TCP/IP Illustrated by W. Richard Stevens is a
| good one. If you're very pressed for time, start with the
| picture of the TCP state machine and work outwards.
| astrobe_ wrote:
| Maybe it's just me but it took a long time before I found
| another "big" API as horrible as BSD sockets is.
|
| Well, some APIs are not meant to be used directly, but hidden
| behind a class or more application-specific functions.
| zubspace wrote:
| How do you handle servers, which need to be accessible by
| desktop, mobile and web application?
|
| Can I use those low level API's or do you know some server/client
| libraries which simplify this for UDP and TCP channels?
| TheCoelacanth wrote:
| That is covered[1], though it is outdated if you want it to be
| able to handle as many connections as possible in a fast way.
|
| There are also thousands of higher-level libraries that would
| let you avoid having to deal with these lower-level APIs
| directly.
|
| [1] https://beej.us/guide/bgnet/html/#poll
| ColinWright wrote:
| Your question is insufficiently specific ... it could mean
| nearly anything. You need to be clearer about what equipment
| you have, and what you're trying to accomplish.
|
| As it stands, I don't think anyone can answer except it a
| completely generic way:
|
| Almost every system has libraries to help, but it depends on
| what you're running on, what you're running over, and what
| you're trying to do.
| trillic wrote:
| Beej's guide got me through my networking class in college. As a
| result I actually understand networking. Thank you Beej!
| dirkf wrote:
| Can confirm this is a nice introduction to network programming;
| it's how I got started. Once you know the basics you can switch
| to the man pages for more details.
| petejames wrote:
| Beej is a Lambda School instructor. He taught me CS.
| legerdemain wrote:
| Wait... the Lambda School that's constantly on HN for its
| disgruntled students, questionable success rates, and murky
| financials? What possessed beej to associate his name with
| them?
| teleforce wrote:
| If I remember correctly this network programming tutorial has
| been around for more than 20 years now, how times flies!
|
| If you want a cross platform network programming guide in C,
| Lewis Van Winkle has written an excellent reference book[1].
|
| [1]https://www.amazon.com/Hands-Network-Programming-
| programming...
| justin66 wrote:
| If that book is as good as you say, it's a pity he published
| with Packt. Their stuff is typically very bad.
| mrozbarry wrote:
| Agreed. I published a video course through Packt and the
| whole experience was absolutely awful.
| netule wrote:
| I began writing a book for them in 2010 and quit when the
| goalposts kept being moved and had a different point of
| contact every week. Absolutely terrible experience.
| majke wrote:
| I attempted to write something for more advanced audience. Not
| sure if it's a successful attempt though...
|
| https://idea.popcount.org/2019-11-06-creating-sockets/
|
| https://idea.popcount.org/2019-12-06-addressing/
| atulvi wrote:
| I printed this from an internet cafe long back when I didn't have
| internet at home in India. I wanted to learn about sockets
| however I could.
| Rebelgecko wrote:
| Beej's guide is great and still very relevant today (at least if
| you're programming in C). Are there any equivalent
| documentation/tutorials for other domains? An equivalent for
| machine learning would be great, although part of what makes
| Beej's guide timeless is that a lot of the underlying concepts
| and syscalls have been static for decades.
| LeonM wrote:
| Back in 2010 I had my first embedded programming job. I needed to
| do some network programming in C (controlling a PLC over
| ethernet). My boss at the time told me "just read Beej's guide
| and you'll be fine". He was right. That system is running 24/7
| since then.
|
| Good to see that the guide is still being updated.
|
| edit: typo
| wdb wrote:
| Yes, I used the guide in 2006 I think or it at least looks
| similar. I had used it to write a little webserver in C to talk
| between the Flash UI and the internals of the device. Worked
| well :)
| KuiN wrote:
| Same here, my first job out of university was network
| programming on embedded Linux and Beej's guide was an
| invaluable resource.
| ravingraven wrote:
| Are you guys me? Exact same story. Network programming on
| embedded systems. Beej to the rescue.
| friend-monoid wrote:
| Same here. That book and the Linux api book are just
| invaluable resources.
| vymague wrote:
| Which linux api book?
| friend-monoid wrote:
| The linux programming interface by Michael Kerrisk. It's
| incredibly good.
| renerthr wrote:
| I only found this: https://man7.org/tlpi/
|
| Is there any free or low-cost version?
| thinkmassive wrote:
| That's the high-value version, it's the only legitimate
| one
| no_wizard wrote:
| You may be able to get it from your local library via an
| app like Overdrive[0][1]. Some library programs even have
| a way for you to get free access to Safari Books
| Online[2] (I'd say most if not all, in the US at least)
|
| My experience has been that there is rarely a backlog on
| technical materials like this.
|
| [0]: https://www.overdrive.com/
|
| [1]: Example of for the LA public library of what I mean:
| https://lapl.overdrive.com/search?query=The+Linux+Program
| min...
|
| [2]: https://www.spl.org/books-and-media/books-and-
| ebooks/oreilly...
| renerthr wrote:
| That's great information, thank you!
| no_wizard wrote:
| Libraries are like the secret weapon of a learner. I
| don't know why our industry has such a lack of knowledge
| about this one! I only recently found out about being
| able to do this myself
|
| (In some ways, we benefit, since there is little pressure
| for the large publishers _not_ to offer these kinds of
| things for free via the library system)
|
| Ancedota (and unrelated to the topic of this thread, but
| interesting none the less I think):
|
| In California, if you go to a state university (but if I
| recall correctly this doesn't apply to the University of
| California system, but the CSU system, if I got my facts
| straight) they must provide a minimum number of copies of
| each textbook / reading material _required_ for a class
| be available via the campus library.
|
| I hardly paid for books once I found this out. I just
| coordinated with others to make sure it was available
| when needed. Worked well for me.
|
| I could be hazy on the regulation on this though, it
| might have just been dumb luck that the two places I went
| to school had this as a policy, but I remember it being
| explained as I did above.
| tracyhenry wrote:
| How does this book compare to Advanced Programming in the
| Unix Environment? http://www.apuebook.com/about3e.html
| anilakar wrote:
| Heck, I passed my uni network programming courses thanks to
| Beej. It also helped tremendously that our professor was a
| seasoned UNIX programmer and during lectures he actually
| typed in his own code and ran it.
| dan-robertson wrote:
| I had a few maths lectures who were highly regarded for
| turning up and proving things from memory in front of the
| blackboard. I hadn't really considered that it might be
| done in CS.
| konjin wrote:
| The best lecturer I had in maths would screw up the
| proofs every time from memory, but the way he screwed
| them up taught me a lot more than if he'd gotten them
| right.
| renerthr wrote:
| Did he acknowledge and fix his mistakes? Or it was just
| you who noticed and fixed them in your mind?
| sjburt wrote:
| My experience is that they get about 45 minutes into the
| lecture, realize that there was an error in minute 10 and
| spend the rest of the period trying to fix it before
| telling you to check the book for the correct proof.
| dan-robertson wrote:
| One professor provided scans of his written notes. For
| one of the theorems in his notes, he'd stated it,
| attempted to prove it, failed, crossed out the proof and
| wrote 'QED'. At least he was honest enough to include it!
| dan-robertson wrote:
| I remember a lecturer of mine having to state and prove a
| theorem due to Heawood[1]. I think he did it first
| because the statement was quite unpleasant and not easy
| to memorise. I found the point of proving things from
| memory is that to memorise a proof, one must distill it
| to key ideas with obvious steps in between. This was
| particularly useful if you might need to reproduce a
| proof in an exam.
|
| [1] https://en.m.wikipedia.org/wiki/Heawood_number
| endgame wrote:
| Heck, my uni's network programming course pointed people to
| Beej's work.
| Person5478 wrote:
| Same for me only it was mid to late 90's and I was interested
| in understanding MUD code.
|
| I have fond memories of that guide and it's always a treat when
| it pops back up.
| vasergen wrote:
| in case somebody is interested in offline version, there are pdf
| versions as well https://beej.us/guide/bgnet/
| riffraff wrote:
| I remember many years ago learning how to use select() with this
| guide and then use it to speed up some scanning tool I had found
| on the internet.
|
| It felt incredible that _I_ could do that as someone who had just
| started programming.
|
| Thank you Beej.
| Koshkin wrote:
| A couple of observations regarding select(): its use is not
| limited to sockets; and, quoting Wikipedia, "with the c10k
| problem, both select and poll have been superseded by the likes
| of kqueue, epoll, /dev/poll and I/O completion ports."
| the8472 wrote:
| And now io_uring too.
| strifey wrote:
| When I TA'ed a course that taught networking fundamentals, I
| always pointed folks at this guide when they were struggling with
| assignments. Can't believe that was 8 years ago.
| fctorial wrote:
| Title should mention it's about linux.
| macksd wrote:
| Even though some of the API specifics change, the BSD sockets
| API has been widely copied. It's a pretty decent introduction
| to the concepts in general.
| petee wrote:
| Well, anything that'll run gcc. He does include a section for
| Windows programming for the brave -
|
| - https://beej.us/guide/bgnet/html/#windows
| joelwilliamson wrote:
| It's useful for any Unix that has BSD sockets, not just Linux.
| icare_1er wrote:
| This one and "Programming from the gound up" [https://download-
| mirror.savannah.gnu.org/releases/pgubook/Pr...] are the two
| bibles i used and often go back to.
| nathias wrote:
| beej's guides are the best
| quake wrote:
| I love this guide!
|
| My first job out of university reqiured networking a small Linux
| device to an FPGA running a UDP stack, with nothing else. I'd
| never done anything with networking in C before, and this guide
| just made everything click
| formercoder wrote:
| Wow I read this in 2006ish. Amazing document to still be around.
| adamnemecek wrote:
| I've always felt like the hard part of networking isn't the APIs
| but the threading problems that you will have very soon after you
| try to write anything serious.
| mwww2 wrote:
| This is gold! Thank you so much.
| reflexe wrote:
| I read your guide when i was 14 (translated to hebrew), until
| now, i have managed to write a functional usermode tcp/ipv4
| stack, and now in the middle of development of a usermode-based
| wireless networking device in an international company. You are a
| big part of it. Thanks.
| cute_boi wrote:
| After reading Beej Guide I think I find "The Linux Programming
| Interface" a good book in general to learn about sockets and
| other linuxy thing etc. Sadly it hasn't been updated since 2010.
| macksd wrote:
| This "Beej" fellow is a legend. This is an example of very clear
| documentation that scales well with your level. When I was
| learning C/C++ as a teenager, I found the guides to be very
| accessible. They were recommended _all the time_ to people asking
| questions on cprogramming.com forums. As I 've referred back to
| them as a professional I still find them comprehensive and
| helpful. This is an excellent model and level of quality for
| other technical writers to aim for.
|
| Brian Hall: thank you!
| anonu wrote:
| I think this thing has been around for at least 15 years. Glad to
| see its still being maintained and updated.
| RobRivera wrote:
| oh hey, I'm actively reworking through this guide for the 3rd
| time. I always manage to get rusty in the fundamentals after
| enough time not practicing.
|
| the latest variant is highly digestible. the struct walkthrus
| seem more accessible
| deckarep wrote:
| Oh wow, thank you Beej for this work and content! Your resource
| has been a tremendous reference to many of us myself included and
| still stands as one of the best resources to network programming
| today!
| udev wrote:
| I have special warm feelings for Beej's guide.
|
| I remember particularly enjoying the warm and jovial tone in his
| guide.
|
| I first read through it some 20 years ago while being a student
| in an easter-european university, where the tone and style of
| professors was very "dictatorial", dry, and overly-technical.
|
| Beej's style of exposure was a breath of fresh air, and brought a
| major realisation for the then young-me, that you can teach
| complex topics in a friendly manner.
| daotoad wrote:
| > while being a student in an easter-european university, where
| the tone and style of professors was very "dictatorial"
|
| I know it's just I typo, but now I have an image stuck in my
| head of a large rabbit, dressed up like Mussolini, lecturing
| about computer science.
|
| Beej's guide was so amazingly helpful and welcoming when I
| found it over a decade ago.
|
| Poorly written guides that try to be friendly or conversational
| are often worse than dry and terse guides of similar caliber,
| which really makes me appreciate the good and truly great ones.
|
| And Beej's Guide is a truly great one.
| billfruit wrote:
| Good guide to socket programming. Does it cover sctp? And more
| importantly is sctp support part of Kernel/glibc presently?
| ColinWright wrote:
| https://www.google.com/search?q=site%3Abeej.us+sctp
|
| > Your search - site:beej.us sctp - did not match any
| documents.
|
| In contrast:
|
| https://www.google.com/search?q=site%3Abeej.us+udp
|
| > About 9 results (0.25 seconds)
|
| So I'd guess that the guide doesn't cover sctp.
|
| ========
|
| Then:
|
| https://duckduckgo.com/?q=is+sctp+support+part+of+Kernel%2Fg...
|
| Returns:
|
| > https://www.kernel.org/doc/html/latest/security/SCTP.html
|
| _(and more ...)_
| billfruit wrote:
| That discussion of merging sctp functionality into glibc is
| from 2004. Anyone knows what happened after that?
| jcrubino wrote:
| sctp only be came widely available after websockets and I think
| due to data channel implementations in WebRTC.
___________________________________________________________________
(page generated 2021-02-11 23:00 UTC)