Take a look at our C books. Shulph carries a great selection of C books, and we are always adding more.
A comprehensive guide to programming with network sockets, implementing Internet protocols, designing IoT devices, and much more with C Key Features Leverage your C or C++ programming skills to build powerful network applications Get to grips with a variety of network protocols that allow you to load web pages, send emails, and do much more Write portable network code for operating systems such as Windows, Linux, and macOS Book Description Network programming, a challenging topic in C, is made easy to understand with a careful exposition of socket programming APIs. This book gets you started with modern network programming in C and the right use of relevant operating system APIs. This book covers core concepts, such as hostname resolution with DNS, that are crucial to the functioning of the modern web. You'll delve into the fundamental network protocols, TCP and UDP. Essential techniques for networking paradigms such as client-server and peer-to-peer models are explained with the help of practical examples. You'll also study HTTP and HTTPS (the protocols responsible for web pages) from both the client and server perspective. To keep up with current trends, you'll apply the concepts covered in this book to gain insights into web programming for IoT. You'll even get to grips with network monitoring and implementing security best practices. By the end of this book, you'll have experience of working with client-server applications, and be able to implement new network programs in C. The code in this book is compatible with the older C99 version as well as the latest C18 and C++17 standards. Special consideration is given to writing robust, reliable, and secure code that is portable across operating systems, including Winsock sockets for Windows and POSIX sockets for Linux and macOS. What you will learn Uncover cross-platform socket programming APIs Implement techniques for supporting IPv4 and IPv6 Understand how TCP and UDP connections work over IP Discover how hostname resolution and DNS work Interface with web APIs using HTTP and HTTPS Acquire hands-on experience with Simple Mail Transfer Protocol (SMTP) Apply network programming to the Internet of Things (IoT) Who this book is for If you're a developer or a system administrator who wants to enter the world of network programming, this book is for you. Basic knowledge of C programming is assumed.
Get up and running with system programming concepts in Linux Key Features Acquire insight on Linux system architecture and its programming interfaces Get to grips with core concepts such as process management, signalling and pthreads Packed with industry best practices and dozens of code examples Book Description The Linux OS and its embedded and server applications are critical components of today's software infrastructure in a decentralized, networked universe. The industry's demand for proficient Linux developers is only rising with time. Hands-On System Programming with Linux gives you a solid theoretical base and practical industry-relevant descriptions, and covers the Linux system programming domain. It delves into the art and science of Linux application programming— system architecture, process memory and management, signaling, timers, pthreads, and file IO. This book goes beyond the use API X to do Y approach; it explains the concepts and theories required to understand programming interfaces and design decisions, the tradeoffs made by experienced developers when using them, and the rationale behind them. Troubleshooting tips and techniques are included in the concluding chapter. By the end of this book, you will have gained essential conceptual design knowledge and hands-on experience working with Linux system programming interfaces. What you will learn Explore the theoretical underpinnings of Linux system architecture Understand why modern OSes use virtual memory and dynamic memory APIs Get to grips with dynamic memory issues and effectively debug them Learn key concepts and powerful system APIs related to process management Effectively perform file IO and use signaling and timers Deeply understand multithreading concepts, pthreads APIs, synchronization and scheduling Who this book is for Hands-On System Programming with Linux is for Linux system engineers, programmers, or anyone who wants to go beyond using an API set to understanding the theoretical underpinnings and concepts behind powerful Linux system programming APIs. To get the most out of this book, you should be familiar with Linux at the user-level logging in, using shell via the command line interface, the ability to use tools such as find, grep, and sort. Working knowledge of the C programming language is required. No prior experience with Linux systems programming is assumed.
Mastering Arduino is a practical, no-nonsense guide that will teach you the electronics and programming skills that you need to create advanced Arduino projects. Key Features Covers enough electronics and code for users at any level Includes complete circuit diagrams for all projects Final robot project combines knowledge from all the chapters Book Description Mastering Arduino is an all-in-one guide to getting the most out of your Arduino. This practical, no-nonsense guide teaches you all of the electronics and programming skills that you need to create advanced Arduino projects. This book is packed full of real-world projects for you to practice on, bringing all of the knowledge in the book together and giving you the skills to build your own robot from the examples in this book. The final two chapters discuss wireless technologies and how they can be used in your projects. The book begins with the basics of electronics, making sure that you understand components, circuits, and prototyping before moving on. It then performs the same function for code, getting you into the Arduino IDE and showing you how to connect the Arduino to a computer and run simple projects on your Arduino. Once the basics are out of the way, the next 10 chapters of the book focus on small projects centered around particular components, such as LCD displays, stepper motors, or voice synthesizers. Each of these chapters will get you familiar with the technology involved, how to build with it, how to program it, and how it can be used in your own projects. What you will learn Explains the basics of electronics and circuits along with the Arduino IDE and basic C operations Use sensors to build a mini weather station Control LEDs using code Power a robot arm using stepper motors Remotely control your Arduino using RF, Bluetooth LE, and Bluetooth Classic Make a sound tone generator with buttons Who this book is for Mastering Arduino is for anybody who wants to experiment with an Arduino board and build simple projects. No prior knowledge is required, as the fundamentals of electronics and coding are covered in this book as well as advance projects.
Gather detailed statistics and deploy impressive business solutions with Zabbix 4.0 Key Features Experience the full impact of Zabbix 4.0, a useful and increasingly popular tool Enhance your network's performance and manage hosts and systems A step-by-step guide to smarter network monitoring Book Description Zabbix 4 Network Monitoring is the perfect starting point for monitoring the performance of your network devices and applications with Zabbix. Even if you've never used a monitoring solution before, this book will get you up and running quickly. You'll learn to monitor more sophisticated operations with ease and soon feel in complete control of your network, ready to meet any challenges you might face. Starting with the installation, you will discover the new features in Zabbix 4.0. You will then get to grips with native Zabbix agents and Simple Network Management Protocol (SNMP) devices. You will also explore Zabbix's integrated functionality for monitoring Java application servers and VMware. This book also covers notifications, permission management, system maintenance, and troubleshooting, so you can be confident that every potential challenge and task is under your control. If you're working with larger environments, you'll also be able to find out more about distributed data collection using Zabbix proxies. Once you're confident and ready to put these concepts into practice, you will understand how to optimize and improve performance. Troubleshooting network issues is vital for anyone working with Zabbix, so the book also helps you work through any technical snags and glitches you might face. By the end of this book, you will have learned more advanced techniques to fine-tune your system and make sure it is in a healthy state. What you will learn Install Zabbix server and an agent from source Manage hosts, users, and permissions while acting upon monitored conditions Visualize data with the help of ad hoc graphs, custom graphs, and maps Simplify complex configurations and learn to automate them Monitor everything from web pages to IPMI devices and Java applications to VMware stats Configure Zabbix to send alerts including problem severity and time periods Troubleshoot any network issue Who this book is for If you're new to Zabbix look no further than this book. Zabbix 4 Network Monitoring is for system and network administrators who are looking to put their knowledge to work with Zabbix 4.0.