دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: [1 ed.]
نویسندگان: Lewis Van Winkle
سری:
ISBN (شابک) : 9781789349863
ناشر: Packt
سال نشر: 2020
تعداد صفحات: 478
[467]
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 13 Mb
در صورت تبدیل فایل کتاب Hands-On Network Programming with C - Learn socket programming in C and write secure and optimized network code (true pdf) به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب برنامه نویسی شبکه دستی با C - برنامه نویسی سوکت را در C یاد بگیرید و کد شبکه ایمن و بهینه را بنویسید (pdf واقعی) نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
راهنمای جامع برنامهنویسی با سوکتهای شبکه، پیادهسازی پروتکلهای اینترنت، طراحی دستگاههای اینترنت اشیا، و بسیاری موارد دیگر با ویژگیهای کلیدی C از مهارتهای برنامهنویسی C یا C خود برای ایجاد برنامههای شبکه قدرتمند استفاده کنید. صفحات وب، ارسال ایمیل و کارهای بسیار بیشتر نوشتن کد شبکه قابل حمل برای سیستم عامل هایی مانند ویندوز، لینوکس و macOS شرح کتاب برنامه نویسی شبکه، موضوعی چالش برانگیز در زبان C، با توضیح دقیق API های برنامه نویسی سوکت به راحتی قابل درک است. این کتاب شما را با برنامه نویسی شبکه مدرن به زبان C و استفاده صحیح از APIهای سیستم عامل مرتبط شروع می کند. این کتاب مفاهیم اصلی مانند وضوح نام میزبان با DNS را پوشش می دهد که برای عملکرد وب مدرن بسیار مهم هستند. شما به پروتکل های اصلی شبکه، TCP و UDP کاوش خواهید کرد. تکنیکهای ضروری برای پارادایمهای شبکهسازی مانند مدلهای کلاینت-سرور و همتا به همتا با کمک مثالهای عملی توضیح داده میشوند. همچنین HTTP و HTTPS (پروتکلهای مسئول صفحات وب) را از منظر مشتری و سرور مطالعه خواهید کرد. برای همگام شدن با روندهای فعلی، مفاهیم مطرح شده در این کتاب را برای به دست آوردن بینش در مورد برنامه نویسی وب برای اینترنت اشیا به کار خواهید برد. شما حتی با نظارت بر شبکه و اجرای بهترین شیوههای امنیتی مقابله خواهید کرد. در پایان این کتاب، شما تجربه کار با برنامه های کاربردی سرویس گیرنده-سرور را خواهید داشت و می توانید برنامه های شبکه جدید را به زبان C پیاده سازی کنید. کد موجود در این کتاب با نسخه قدیمی C99 و همچنین آخرین C18 سازگار است. و استانداردهای C 17. توجه ویژه ای به نوشتن کدهای قوی، قابل اعتماد و ایمن داده می شود که قابل حمل در سراسر سیستم عامل ها، از جمله سوکت های Winsock برای ویندوز و سوکت های POSIX برای Linux و macOS هستند. آنچه یاد خواهید گرفت کشف API های برنامه نویسی سوکت های متقابل پلتفرم. پیاده سازی تکنیک هایی برای پشتیبانی از IPv4 و IPv6 درک نحوه عملکرد اتصالات TCP و UDP از طریق IP کشف نحوه عملکرد وضوح نام میزبان و DNS رابط با API های وب با استفاده از HTTP و HTTPS کسب تجربه عملی با Simple Mail پروتکل انتقال (SMTP) برنامه نویسی شبکه را در اینترنت اشیا (IoT) اعمال کنید. دانش اولیه برنامه نویسی C فرض می شود.
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.
Cover Title Page Copyright and Credits Dedication About Packt Contributors Table of Contents Preface Section 1 - Getting Started with Network Programming Chapter 1: Introducing Networks and Protocols Technical requirements The internet and C OSI layer model TCP/IP layer model Data encapsulation Internet Protocol What is an address? Domain names Internet routing Local networks and address translation Subnetting and CIDR Multicast, broadcast, and anycast Port numbers Clients and servers Putting it together What's your address? Listing network adapters from C Listing network adapters on Windows Listing network adapters on Linux and macOS Summary Questions Chapter 2: Getting to Grips with Socket APIs Technical requirements What are sockets? Socket setup Two types of sockets Socket functions Anatomy of a socket program TCP program flow UDP program flow Berkeley sockets versus Winsock sockets Header files Socket data type Invalid sockets Closing sockets Error handling Our first program A motivating example Making it networked Working with IPv6 Supporting both IPv4 and IPv6 Networking with inetd Summary Questions Chapter 3: An In-Depth Overview of TCP Connections Technical requirements Multiplexing TCP connections Polling non-blocking sockets Forking and multithreading The select() function Synchronous multiplexing with select() select() timeout Iterating through an fd_set select() on non-sockets A TCP client TCP client code A TCP server TCP server code Building a chat room Blocking on send() TCP is a stream protocol Summary Questions Chapter 4: Establishing UDP Connections Technical requirements How UDP sockets differ UDP client methods UDP server methods A first UDP client/server A simple UDP server A simple UDP client A UDP server Summary Questions Chapter 5: Hostname Resolution and DNS Technical requirements How hostname resolution works DNS record types DNS security Name/address translation functions Using getaddrinfo() Using getnameinfo() Alternative functions IP lookup example program The DNS protocol DNS message format DNS message header format Question format Answer format Endianness A simple DNS query A DNS query program Printing a DNS message name Printing a DNS message Sending the query Summary Questions Further reading Section 2 - An Overview of Application Layer Protocols Chapter 6: Building a Simple Web Client Technical requirements The HTTP protocol HTTP request types HTTP request format HTTP response format HTTP response codes Response body length What's in a URL Parsing a URL Implementing a web client HTTP POST requests Encoding form data File uploads Summary Questions Further reading Chapter 7: Building a Simple Web Server Technical requirements The HTTP server The server architecture Content types Returning Content-Type from a filename Creating the server socket Multiple connections buffering get_client() drop_client() get_client_address() wait_on_clients() send_400() send_404() serve_resource() The main loop Security and robustness Open source servers Summary Questions Further reading Chapter 8: Making Your Program Send Email Technical requirements Email servers SMTP security Finding an email server SMTP dialog The format of an email A simple SMTP client program Enhanced emails Email file attachments Spam-blocking pitfalls Summary Questions Further reading Section 3 - Understanding Encrypted Protocols and OpenSSL Chapter 9: Loading Secure Web Pages with HTTPS and OpenSSL Technical requirements HTTPS overview Encryption basics Symmetric ciphers Asymmetric ciphers How TLS uses ciphers The TLS protocol Certificates Server name identification OpenSSL Encrypted sockets with OpenSSL Certificates A simple HTTPS client Other examples Summary Questions Further reading Chapter 10: Implementing a Secure Web Server Technical requirements HTTPS and OpenSSL summary Certificates Self-signed certificates with OpenSSL HTTPS server with OpenSSL Time server example A full HTTPS server HTTPS server challenges OpenSSL alternatives Alternatives to TLS Summary Questions Further reading Chapter 11: Establishing SSH Connections with libssh Technical requirements The SSH protocol libssh Testing out libssh Establishing a connection SSH authentication Server authentication Client authentication Executing a remote command Downloading a file Summary Questions Further reading Section 4 - Odds and Ends Chapter 12: Network Monitoring and Security Technical requirements The purpose of network monitoring Testing reachability Checking a route How traceroute works Raw sockets Checking local connections Snooping on connections Deep packet inspection Capturing all network traffic Network security Application security and safety Network-testing etiquette Summary Questions Further reading Chapter 13: Socket Programming Tips and Pitfalls Technical requirements Error handling Obtaining error descriptions TCP socket tips Timeout on connect() TCP flow control and avoiding deadlock Congestion control The Nagle algorithm Delayed acknowledgment Connection tear-down The shutdown() function Preventing address-in-use errors Sending to a disconnected peer Socket's local address Multiplexing with a large number of sockets Summary Questions Chapter 14: Web Programming for the Internet of Things Technical requirements What is the IoT? Connectivity options Wi-Fi Ethernet Cellular Bluetooth IEEE 802.15.4 WPANs Hardware choices Single-board computers Microcontrollers FPGAs External transceivers and modems IoT protocols Firmware updates Ethics of IoT Privacy and data collection End-of-life planning Security Summary Questions Appendix A: Answers to Questions Chapter 1, Introducing Networks and Protocols Chapter 2, Getting to Grips with Socket APIs Chapter 3, An In-Depth Overview of TCP Connections Chapter 4, Establishing UDP Connections Chapter 5, Hostname Resolution and DNS Chapter 6, Building a Simple Web Client Chapter 7, Building a Simple Web Server Chapter 8, Making Your Program Send Email Chapter 9, Loading Secure Web Pages with HTTPS and OpenSSL Chapter 10, Implementing a Secure Web Server Chapter 11, Establishing SSH Connections with libssh Chapter 12, Network Monitoring and Security Chapter 13, Socket Programming Tips and Pitfalls Chapter 14, Web Programming for the Internet of Things Appendix B: Setting Up Your C Compiler on Windows Installing MinGW GCC Installing Git Installing OpenSSL Installing libssh Alternatives Appendix C: Setting Up Your C Compiler on Linux Installing GCC Installing Git Installing OpenSSL Installing libssh Appendix D: Setting Up Your C Compiler on macOS Installing Homebrew and the C compiler Installing OpenSSL Installing libssh Appendix E: Example Programs Code license Code included with this book Chapter 1 – Introducing Networks and Protocols Chapter 2 – Getting to Grips with Socket APIs Chapter 3 – An In-Depth Overview of TCP Connections Chapter 4 – Establishing UDP Connections Chapter 5 – Hostname Resolution and DNS Chapter 6 – Building a Simple Web Client Chapter 7 – Building a Simple Web Server Chapter 8 – Making Your Program Send Email Chapter 9 – Loading Secure Web Pages with HTTPS and OpenSSL Chapter 10 – Implementing a Secure Web Server Chapter 11 – Establishing SSH Connections with libssh Chapter 12 – Network Monitoring and Security Chapter 13 – Socket Programming Tips and Pitfalls Chapter 14 – Web Programming for the Internet of Things Other Book You May Enjoy Index