3 comments

  • ncmv928 小时前
    In my opinion, Linux network programming, especially socket programming, isn’t that difficult. However, learning this topic on your own can be challenging because many online resources are unclear, and sample codes often only cover the basics. You might find yourself unsure of what to do next. That's why I created this tutorial. It aims to give you clear guidelines and plenty of examples to help you understand better.
    • f1shy2 小时前
      Actually is extremely simple. I learned by looking the original papers[0]

      As you say, just lots of bad examples online. The only thing that made me a little bit crazy at the beginning, was the fact that TCP is a stream without delimiters, no packet concept. Other than that, is not more difficult than writing and reading a file.

      [0] https://docs-archive.freebsd.org/44doc/psd/20.ipctut/paper.p...

      Another useful resource: https://beej.us/guide/bgnet/

      Edit: beej seems already cited and beloved

    • AnonC4 小时前
      I skimmed through it and it looks good.

      Since I didn’t see this in the list of references, I have to ask — have you heard of the (famous) Beej’s Guide to Network Programming [1]? It’s a classic (in the sense that it’s been around for a long, long time and goes into many more details) on this topic.

      [1]: https://beej.us/guide/bgnet/

      • butterandguns4 小时前
        Beej’s was great for me when I was doing some socket programming in C for my OS class in grad school. Classic and invaluable resource.
      • ncmv924 小时前
        beej was also a great place to take the first steps in network programming :) I just updated my reference list. This is one of my missing piece. Thank you for the reminder.
  • infocollector1 小时前
    Does anyone know - Is there a guide like this that does this with Python instead of the C Socket API?
  • Uptrenda26 分钟前
    The guide looks well written and I can't see any major errors (just skimmed it.) But some of the diagrams are potentially misleading. E.g.

    read <---- write

    write ----> read

    Implies that send/recv perfectly correlate to each other when they can be split up in stream sockets. Your code addresses that already with loops. So I know you know that. Just confusing diagrams I guess.