Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Hands-On Network Programming with C# and .NET Core

You're reading from   Hands-On Network Programming with C# and .NET Core Build robust network applications with C# and .NET Core

Arrow left icon
Product type Paperback
Published in Mar 2019
Publisher
ISBN-13 9781789340761
Length 488 pages
Edition 1st Edition
Languages
Tools
Concepts
Arrow right icon
Author (1):
Arrow left icon
Sean Burns Sean Burns
Author Profile Icon Sean Burns
Sean Burns
Arrow right icon
View More author details
Toc

Table of Contents (26) Chapters Close

Preface 1. Section 1: Foundations of Network Architecture
2. Networks in a Nutshell FREE CHAPTER 3. DNS and Resource Location 4. Communication Protocols 5. Packets and Streams 6. Section 2: Communicating Over Networks
7. Generating Network Requests in C# 8. Streams, Threads, and Asynchronous Data 9. Error Handling over the Wire 10. Section 3: Application Protocols and Connection Handling
11. Sockets and Ports 12. HTTP in .NET 13. FTP and SMTP 14. The Transport Layer - TCP and UDP 15. Section 4: Security, Stability, and Scalability
16. The Internet Protocol 17. Transport Layer Security 18. Authentication and Authorization on Networks 19. Caching Strategies for Distributed Systems 20. Performance Analysis and Monitoring 21. Section 5: Advanced Subjects
22. Pluggable Protocols in .NET Core 23. Network Analysis and Packet Inspection 24. Remote Logins and SSH 25. Other Books You May Enjoy

Asynchronous programming for asynchronous data sources

If you're not familiar with asynchronous programming then what we're about to talk about may seem a little confusing at first, but I promise that in practice, it's actually quite simple. All it means is performing individual computational tasks out of order, or out of sync. It allows engineers to defer blocking the execution of their program to wait for a long-running task until they absolutely have to. To make this clear, let's look at an example.

Let's imagine we have a method that must have step A send a request for a massive amount of data, with step B performing long-running calculations locally, and finally, C returns the two results as a single response. If we were to read the response from our network request synchronously, then the time it takes to complete our method would be the total of...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image