Reddit Reddit reviews Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition)

We found 19 Reddit comments about Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition). Here are the top ones, ranked by their Reddit score.

Computers & Technology
Books
Computer & Technology Certification Guides
Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition)
Check price on Amazon

19 Reddit comments about Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition):

u/sharjeelsayed · 28 pointsr/compsci

Computer Networking: A Top-Down Approach (7th Edition)
https://www.amazon.com/Computer-Networking-Top-Down-Approach-7th/dp/0133594149

CS144 Introduction to Computer Networking Stanford University
https://suclass.stanford.edu/courses/course-v1:Engineering+CS144+Fall2016/courseware/ac9d1eef5aaa4bb5bcfe4d42f51f0f5b/c5c384e648cf404c837d05497c6e36b0

Beej's Guide to Network Programming
http://beej.us/guide/bgnet

Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition)
https://www.amazon.com/Unix-Network-Programming-Sockets-Networking/dp/0131411551

High Performance Browser Networking
https://hpbn.co

Eli The Computer Guy Youtube
https://www.youtube.com/playlist?list=PLF360ED1082F6F2A5

Load Balancing Servers, Firewalls, and Caches
http://www.amazon.com/Load-Balancing-Servers-Firewalls-Caches/dp/0471415502

More at http://Learn.SharjeelSayed.com

u/xhsmd · 6 pointsr/C_Programming

Unix Network Programming: Unix Network Programming, Volume 1 Sockets Networking API v. 1 (Addison-Wesley Professional Computing) https://www.amazon.co.uk/dp/0131411551/ref=cm_sw_r_cp_apa_i_tMA.AbMQCD1XT

Had it for years, worth the price.

u/lattera · 6 pointsr/BSD
u/sceadu · 5 pointsr/learnprogramming

http://beej.us/guide/bgnet/

The books by W. Richard Stevens (he has the reputation of being one of the best technical writers ever, and for good reason), e.g.:
http://www.amazon.com/Unix-Network-Programming-Sockets-Networking/dp/0131411551/ref=sr_1_3?ie=UTF8&qid=1313380032&sr=8-3

u/leoc · 4 pointsr/programming

Both Advanced Programming in the Unix Environment and volume 1 of Unix Network Programming are out in updated editions by other people. (Stevens has unfortunately died.)

u/napperjabber · 4 pointsr/gamedev

Grab a book, find a project. Bunker down and nail it out.

I have a simular background; I learnt AS3, went onto JS/HTML, c#, java, python, c/c++. For my C, I picked up unix networking and for c++ I picked up modern c++ design.

From there, it's just a matter of getting dirty.

u/serejkus · 3 pointsr/rust

Tokio has a tutorial which introduces tokio and futures.

There is a guide started by Aaron Turon, but it hadn't been updated for a while.

For more deep introduction to network programming I'd recomend Steven's book on Unix network programming, but it is not Rust, but C.

u/undead-pixie · 3 pointsr/cpp_questions

The book Unix Network Programming by Stevens is the seminal work on network programming. It will be C but the Unix API is C. Then there is the actual network protocol specs which are published by the Internet Engineering Task Force. Those two sources cover the low level technical details and there is a lot of material to learn there.



u/mian2zi3 · 2 pointsr/learnprogramming

I recommend Stevens' oeuvre starting with TCP/IP Illustrated (for the concepts) and UNIX Network Programming (for the C-level programming details):

https://www.amazon.com/Unix-Network-Programming-Sockets-Networking/dp/0131411551

https://www.amazon.com/TCP-Illustrated-Protocols-Addison-Wesley-Professional/dp/0321336313

Also, Beej's Guide to Network Programming (background and C-level programming details): http://beej.us/guide/bgnet/output/html/multipage/index.html

If you're doing web work, you might be interested in High Performance Browser Networking: https://hpbn.co/

TCP/IP Illustrated will cover some of it, but you might want to read the networking chapter(s) of a sysadmin book. I don't have a ready reference.

These don't cover load-balancing or CDN, although the other textbooks mentioned in the thread probably don't either, at least not in detail.

u/rjcarr · 2 pointsr/learnprogramming

I believe this is the bible book when it comes to network programming:

http://www.amazon.com/Unix-Network-Programming-Volume-Networking/dp/0131411551

u/idboehman · 2 pointsr/devops

I'd make sure I have a really solid understanding of systems and networks, e.g. how Linux works. This book seems like a great overview and I love No Starch Press. There's also this book which is used by Carnegie Mellon's introductory systems course, though that might be a bit too deep to dive into straight away, more like something that could be used if you want a deeper understanding of how systems work. You should have some familiarity with C just as foundational knowledge. The guy who wrote Learn Python The Hard Way also wrote an intro to C, Learn C the Hard Way. He's added a lot more material than the last time I checked (~Dec 2012) which looks like it covers a lot of topics so it would be great to work through it.

Some more technical books on this subject that are well regarded and can be used as reference books are Advanced Programming in the Unix Environment, Unix Network Programming, and The Linux Programming Interface

Also in addition to Python I'd also suggest learning some Ruby (Practical Object-Oriented Design in Ruby and Programming Ruby 1.9 & 2.0 are two resources I'd recommend), it's what Chef is/was implemented in and is fairly nice to work with.

u/tallpapab · 2 pointsr/javascript

ISO/OSI is a comprehensive architecture for networking. TCP/IP are the protocols that are actually used in the internet. One can view TCP/IP as a (partial) implementation of OSI/ISO, but, IMHO, while valuable conceptually I feel you're better off studying TCP/IP. In addition ISO/OSI doesn't specify an API like sockets which you need to write programs.

u/coned88 · 1 pointr/linux

While being a self taught sys admin is great, learning the internals of how things work can really extend your knowledge beyond what you may have considered possible. This starts to get more into the CS portion of things, but who cares. It's still great stuff to know, and if you know this you will really be set apart. Im not sure if it will help you directly as a sys admin, but may quench your thirst. Im both a programmer and unix admin, so I tend to like both. I own or have owned most of these and enjoy them greatly. You may also consider renting them or just downloading them. I can say that knowing how thing operate internally is great, it fills in a lot of holes.

OS Internals

While you obviously are successful at the running and maintaining of unix like systems. How much do you know about their internal functions? While reading source code is the best method, some great books will save you many hours of time and will be a bit more enjoyable. These books are Amazing
The Design and Implementation of the FreeBSD Operating System

Linux Kernel Development
Advanced Programming in the UNIX Environment

Networking

Learning the actual function of networking at the code level is really interesting. Theres a whole other world below implementation. You likely know a lot of this.
Computer Networks

TCP/IP Illustrated, Vol. 1: The Protocols

Unix Network Programming, Volume 1: The Sockets Networking API

Compilers/Low Level computer Function

Knowing how a computer actually works, from electricity, to EE principles , through assembly to compilers may also interest you.
Code: The Hidden Language of Computer Hardware and Software

Computer Systems: A Programmer's Perspective

Compilers: Principles, Techniques, and Tools

u/saranagati · 1 pointr/sysadmin

The Design of the UNIX Operating System

u/SunliMin · 1 pointr/cscareerquestions

Personally, I really enjoyed:

Unix Network Programming : The Sockets Networking API


It is dated and all code samples are in raw C. However, I really enjoyed it because it was a great mix between the theory of TCP/IP and the concrete usage of it. Our data communications teacher recommended it highly, so I got it from Abebooks.ca for $5~. Probably the best $5 I ever spent. The issue though is it is dated, so although reading it will help your knowledge and C, copy-pasting code snippets will likely not work out of the box. That being said, going along with it that way was probably for the best, because it meant I had to understand and recreate what he was showing, proving I actually learned it, instead of effectively rewriting his code word for word in autopilot mode.

He is also the author of TCP/IP illustrated, which /u/bobo333 recommends. I haven't read it, but considering it's the same topic by the same author, I'm assuming it would be just as good as well.

u/postmodern · 1 pointr/netsec
u/greengobblin911 · 1 pointr/linuxquestions

Many people may disagree with me, but as a Linux user on the younger side of the spectrum, I have to say there was one thing that really worked for me to finally switch for good- books.

There's tons of wikis and forums and of course Reddit to ask questions, but it is hard to get good answers. You may end up paying for books (unless you look on the internet for books) but it doesn't beat having a hard copy in front of you. It boils down to a time vs money trade off. The only wiki I would follow is one directly from the developers that act as documentation, not a community wiki. Also worth nothing certain wikis are more tied to linux and the kernel than others, meaning some are comparable/interchangable with the distro you may be using. Still, a novice would not easily put this together.

Forums are also useless unless you have the configuration mentioned in the post or that forum curates tutorials from a specific build they showcase and you as a user decided to build your system to their specifications. There's way too many variables trying to follow online guides, some of which may be out of date.

This i've realized is very true with things like Iommu grouping and PCI Passthrough for kernel based virtual machines. At that point you start modifying in your root directory, things like your kernel booting parameters and what drivers or hardware you're gonna bind or unbind from your system. While that does boil down to having the right hardware, you have to know what you're digging into your kernel for if you dont follow a guide with the same exact parts that are being passthrough or the cpus or chipsets are different.

Books are especially handy when you have a borked system, like you're in a bash prompt or an initramfs prompt or grub and need to get into a bootable part of the system. Linux takes practice. Sometimes its easier to page through a book than to search through forums.

Another thing about being an intermediate or expert Linux user is that you don't care much about distros or what other users or communities do. It wont matter as under the hood it's all the same, spare the desktop and the package managers. Once you're out of that mentality you just care about getting whatever you want done. I'm not one of those guys that's super gung-ho FOSS and open source. I just use what gets the job done. Also from a security perspective, yes Linux is in theory MORE secure but anything can be hardened or left vulnerable. It's more configuration tied than many uses and forums or threads lead it on to be.

My workload involves talking to servers and quite a bit of programming and scripting, in a variety of capacities. That's what led me to linux over the competitors, but I'm not so prudent to never ever want to use the competitor again or have a computer with it. With understanding Linux more, I use it more as a tool than to be part of the philosophy or community, though that enthusiasm pushes for new developments in the kernel.

I'm assuming you're a novice but comfortable enough in linux to get through certain things:

In any computer related thing, always TEST a deployment or feature first- From your linux system, use KVM or Virtualbox/vmware to spin up a few linux VMs, could even be a copy of your current image. This way any tweaks or things you want to test or try out is in an environment you can start over in.

The quickest way to "intermediate-expert" Linux IMO is learning system administration.

My go to book for this is "The Unix and Linux System Administration Handbook 5th edition"

https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554/ref=sr_1_1?keywords=The+Unix+and+Linux+System+Administration+Handbook+5th+edition&qid=1564448656&s=books&sr=1-1

This edition is updated recently to cover newer kernel features such as could environments and virtualization. This book also helps when learning BSD based stuff such as MacOS or FreeBSD.

Another good read for a "quick and dirty" understanding of Linux is "Linux Basics for Hackers" It does focus on a very niche distro and talks about tools that are not on all Linux systems BUT it does a good concise overview of intermediate things related to Linux (despite being called a beginners book).

https://www.amazon.com/Linux-Basics-Hackers-Networking-Scripting/dp/1593278551/ref=sr_1_3?crid=396AV036T1Y0Q&keywords=linux+basics+for+hackers&qid=1564448845&s=books&sprefix=linux+bas%2Cstripbooks%2C119&sr=1-3

There's also "How Linux works" but I cannot vouch for this book from personal use, I see it posted across various threads often. Never read this particular one myself.

https://www.amazon.com/How-Linux-Works-2nd-Superuser/dp/1593275676/ref=pd_bxgy_14_img_2/137-6604082-4373447?_encoding=UTF8&pd_rd_i=1593275676&pd_rd_r=feffef24-d3c3-400d-a807-24d8fa39cd1e&pd_rd_w=8GX0o&pd_rd_wg=3AMRB&pf_rd_p=a2006322-0bc0-4db9-a08e-d168c18ce6f0&pf_rd_r=WBQKPADCVSABMCMSRRA1&psc=1&refRID=WBQKPADCVSABMCMSRRA1

​

If you want a more programming oriented approach, if you're confortable with the C language, then you can always look at these books:

The Linux Programming Interface

https://www.amazon.com/Linux-Programming-Interface-System-Handbook/dp/1593272200/ref=zg_bs_3866_1?_encoding=UTF8&psc=1&refRID=5YN3316W22YQ4TSMM967

Unix Network Programming VOL 1.

https://www.amazon.com/Unix-Network-Programming-Sockets-Networking/dp/0131411551/ref=sr_1_1?keywords=Unix+Network+Programming+VOL+1.&qid=1564448362&s=books&sr=1-1

Advanced Programming in the Unix Environment

https://www.amazon.com/Advanced-Programming-UNIX-Environment-3rd/dp/0321637739/ref=zg_bs_3866_2?_encoding=UTF8&psc=1&refRID=5YN3316W22YQ4TSMM967

These books would take you to understanding the kernel level processes and make your own and modify your own system.

As many have mentioned, you can go into these things with "Linux from scratch" but it's also feasible to do Linux from scratch by copy/pasting commands. Unless you tinker and fail at certain things (hence do it on a vm before doing it to the main system) you won't learn properly. I think the sysadmin approach is "safer" of the two options but to each their own.