Hands-On Network Programming with C# and .NET Core
Learn |
|
---|---|
About |
The C# language and the .NET Core application framework provide the tools and patterns required to make the discipline of network programming as intuitive and enjoyable as any other aspect of C# programming. With the help of this book, you will discover how the C# language and the .NET Core framework make this possible. The book begins by introducing the core concepts of network programming, and what distinguishes this field of programming from other disciplines. After this, you will gain insights into concepts such as transport protocols, sockets and ports, and remote data streams, which will provide you with a holistic understanding of how network software fits into larger distributed systems. The book will also explore the intricacies of how network software is implemented in a more explicit context, by covering sockets, connection strategies such as Transmission Control Protocol (TCP) and User Datagram Protocol (UDP), asynchronous processing, and threads. You will then be able to work through code examples for TCP servers, web APIs served over HTTP, and a Secure Shell (SSH) client. By the end of this book, you will have a good understanding of the Open Systems Interconnection (OSI) network stack, the various communication protocols for that stack, and the skills that are essential to implement those protocols using the C# programming language and the .NET Core framework. |
Features |
|
Page Count | 488 |
Course Length | 14 hours 38 minutes |
ISBN | 9781789340761 |
Date Of Publication | 29 Mar 2019 |
Technical requirements |
Expanding the scope of software – distributed systems and the challenges they introduce |
Topologies and physical infrastructure |
The software impact of distributing resources on a network |
Network objects and data structures in .NET Core |
A whole new computing world |
Summary |
Questions |
Further reading |
Technical requirements |
Needles in a haystack – data on the internet |
URLs, domain names, and device addresses |
The DNS in C# |
Summary |
Questions |
Further reading |
Technical requirements |
The Open Systems Interconnection network stack |
The application layer |
The Transport layer |
Summary |
Questions |
Further reading |
Technical requirements |
Leveraging networks – transmitting packets for use by remote resources |
The anatomy of a packet |
Streams and serialization – understanding sequential data transmission |
Summary |
Questions |
Further reading |
Technical requirements |
One class to rule them all – the WebRequest abstract class |
The sub-classes of the WebRequest class |
Summary |
Questions |
Further reading |
Technical requirements |
Going with the flow – data streams in C# |
The right stream for the job |
Picking up the pace – multithreading data processing |
Asynchronous programming for asynchronous data sources |
Summary |
Questions |
Further reading |
Technical requirements |
Cracking open HTTP |
The many methods of HTTP |
HTTP request formatting |
HTTPS – security over HTTP |
HTTP/2 |
Summary |
Questions |
Further reading |
Technical requirements |
The IP standard |
IPv4 and its limits |
IPv6 – the future of the protocol |
Leveraging IP in C# |
Summary |
Questions |
Further reading |