کتاب برنامه‌نویسی عملی شبکه با C – ویرایش اول
 اثر Van Winkle, Lewis

عنوان:

Hands-On Network Programming with C

نویسنده:

Van Winkle, Lewis

انتشارات:

Packt

تاریخ انتشار:

2019;2020

حجم:

5.3MB

دانلود

معرفی کتاب:" برنامه‌نویسی عملی شبکه با C – ویرایش اول "

برنامه‌نویسی شبکه به فرایند ارتباط بین فرآیندها از طریق یک شبکه رایانه‌ای اشاره دارد، اما این کار پیچیده است و نیاز به استفاده از کتابخانه‌ها و پروتکل‌های مختلف دارد. زبان C با پشتیبانی از کتابخانه‌های شخص ثالث و مستندسازی ساختاریافته، زبان ایده‌آلی برای نوشتن برنامه‌های شبکه‌ای محسوب می‌شود.

این کتاب با توضیحات گام‌به‌گام مفاهیم اساسی و مثال‌های عملی، از مبانی پروتکل اینترنت (IP)، TCP و UDP آغاز می‌شود. سپس مدل‌های کلاینت-سرور و همتا-به-همتا (P2P)، پروتکل‌های HTTP و HTTPS، و مفاهیمی مانند تبدیل نام میزبان و DNS را بررسی می‌کند.

همچنین با برنامه‌نویسی سوکت ناهمگام، مدیریت خطا و اشکال‌زدایی، پایش شبکه و امنیت در شبکه آشنا می‌شوید. کدهای ارائه‌شده با استانداردهای C99، C18 و C++17 سازگارند و روی پلتفرم‌هایی مانند ویندوز (Winsock) و لینوکس/macOS (POSIX) اجرا می‌شوند.

آنچه در این کتاب خواهید آموخت:

  • کشف APIهای سوکت چندسکویی (Cross-Platform)
  • پشتیبانی از IPv4 و IPv6
  • درک عملکرد TCP و UDP
  • مبانی DNS و hostname resolution
  • برقراری ارتباط با APIهای HTTP و HTTPS
  • ارسال ایمیل با SMTP
  • کاربرد برنامه‌نویسی شبکه در IoT

مخاطب این کتاب:

مناسب برای توسعه‌دهندگان یا مدیران سیستم که قصد دارند با برنامه‌نویسی شبکه‌ای با C شروع کنند. آشنایی ابتدایی با زبان C پیش‌فرض گرفته شده است.

درباره نویسنده:

لوییس ون وینکل مشاور برنامه‌نویسی و بنیان‌گذار یک شرکت موفق در حوزه اینترنت اشیاء (IoT) است. او با بیش از ۲۰ سال تجربه، در حوزه‌های سیستم‌های شبکه، سیستم‌های مالی، یادگیری ماشین و برنامه‌نویسی سطح پایین تخصص دارد.

فهرست مطالب

  • Network Programming in C
  • 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
  • Domain names
  • Internet routing
  • Port numbers
  • Clients and servers
  • Putting it together
  • What's your address?
  • Listing network adapters from C
  • 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
  • Berkeley sockets versus Winsock sockets
  • Our first program
  • Summary
  • Questions
  • Chapter 3: An In-Depth Overview of TCP Connections
  • Technical requirements
  • Multiplexing TCP connections
  • Synchronous multiplexing with select()
  • A TCP client
  • A TCP server
  • Blocking on send()
  • TCP is a stream protocol
  • Summary
  • Questions
  • Chapter 4: Establishing UDP Connections
  • Technical requirements
  • How UDP sockets differ
  • A first UDP client/server
  • A UDP server
  • Summary
  • Questions
  • Chapter 5: Hostname Resolution and DNS
  • Technical requirements
  • How hostname resolution works
  • Name/address translation functions
  • The DNS protocol
  • A DNS query program
  • Summary
  • Questions
  • Further reading
  • Section 2 - An Overview of Application Layer Protocols
  • Chapter 6: Building a Simple Web Client
  • Technical requirements
  • The HTTP protocol
  • What's in a URL
  • Implementing a web client
  • HTTP POST requests
  • Summary
  • Questions
  • Further reading
  • Chapter 7: Building a Simple Web Server
  • Technical requirements
  • The HTTP server
  • Content types
  • Creating the server socket
  • Multiple connections buffering
  • The main loop
  • Security and robustness
  • Summary
  • Questions
  • Further reading
  • Chapter 8: Making Your Program Send Email
  • Technical requirements
  • Email servers
  • SMTP dialog
  • The format of an email
  • A simple SMTP client program
  • Enhanced emails
  • 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
  • The TLS protocol
  • OpenSSL
  • A simple HTTPS client
  • Other examples
  • Summary
  • Questions
  • Further reading
  • Chapter 10: Implementing a Secure Web Server
  • Technical requirements
  • HTTPS and OpenSSL summary
  • HTTPS server with OpenSSL
  • HTTPS server challenges
  • Summary
  • Questions
  • Further reading
  • Chapter 11: Establishing SSH Connections with libssh
  • Technical requirements
  • The SSH protocol
  • libssh
  • SSH 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 local connections
  • Snooping on connections
  • Network security
  • Network-testing etiquette
  • Summary
  • Questions
  • Further reading
  • Chapter 13: Socket Programming Tips and Pitfalls
  • Technical requirements
  • Error handling
  • TCP socket tips
  • 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
  • Hardware choices
  • External transceivers and modems
  • IoT protocols
  • Firmware updates
  • Ethics of IoT
  • Summary
  • Questions
  • Appendix A: Answers to Questions
  • Appendix B: Setting Up Your C Compiler on Windows
  • Appendix C: Setting Up Your C Compiler on Linux
  • Appendix D: Setting Up Your C Compiler on macOS
  • Appendix E: Example Programs
  • Other Book You May Enjoy
  • Index

مشخصات

نام کتاب

Hands-On Network Programming with C

نویسنده

Van Winkle, Lewis

انتشارات

Packt

تاریخ انتشار

2019;2020

ISBN

9781789349863

تعداد صفحات

467

زبان

انگلیسی

فرمت

pdf

حجم

5.3MB

موضوع

low-level-networking