Skip to main content

Beej's Guide to Network Programming

About 2 minCcrashcoursecnetworksocket

Beej's Guide to Network Programming ๊ด€๋ จ


Beej's Guide to Network Programming
Using Internet Sockets - Brian 'Beej Jorgensen' Hall
  • 01. Intro
    • 01A. Audience
    • 01B. Platform and Compiler
    • 01C. Official Homepage and Books For Sale
    • 01D. Note for Solaris/SunOS Programmers
    • 01E. Note for Windows Programmers
    • 01F. Email Policy
    • 01G. Mirroring
    • 01H. Note for Translators
    • 01I. Copyright, Distribution, and Legal
    • 01J. Dedication
    • 01K. Publishing Information
    1. What is a socket?
    • 02A. Two Types of Internet Sockets
    • 02B. Low level Nonsense and Network Theory
    1. IP Addresses, structs, and Data Munging
    • 3.1 IP Addresses, versions 4 and 6
      • 3.1.1 Subnets
      • 3.1.2 Port Numbers
    • 3.2 Byte Order
    • 3.3 structs
    • 3.4 IP Addresses, Part Deux
      • 3.4.1 Private (Or Disconnected) Networks
    1. Jumping from IPv4 to IPv6
    1. System Calls or Bust
    • 05A. getaddrinfo()โ€”Prepare to launch!
    • 05B. socket()โ€”Get the File Descriptor!
    • 05C. bind()โ€”What port am I on?
    • 05D. connect()โ€”Hey, you!
    • 05E. listen()โ€”Will somebody please call me?
    • 05F. accept()โ€”โ€œThank you for calling port 3490.โ€
    • 05G. send() and recv()โ€”Talk to me, baby!
    • 05H. sendto() and recvfrom()โ€”Talk to me, DGRAM-style
    • 05I. close() and shutdown()โ€”Get outta my face!
    • 05J. getpeername()โ€”Who are you?
    • 05K. gethostname()โ€”Who am I?
    1. Client-Server Background
    • 6.1 A Simple Stream Server
    • 6.2 A Simple Stream Client
    • 6.3 Datagram Sockets
    1. Slightly Advanced Techniques
    • 07A. Blocking
    • 07B. poll()โ€”Synchronous I/O Multiplexing
    • 07C. select()โ€”Synchronous I/O Multiplexing, Old School
    • 07D. Handling Partial send()s
    • 07E. Serializationโ€”How to Pack Data
    • 07F. Son of Data Encapsulation
    • 07G. Broadcast Packetsโ€”Hello, World!
    1. Common Questions
    1. Man Pages
    • 09A. accept()
    • 09B. bind()
    • 09C. connect()
    • 09D. close()
    • 09E. getaddrinfo(), freeaddrinfo(), gai_strerror()
    • 09F. gethostname()
    • 09G. gethostbyname(), gethostbyaddr()
    • 09H. getnameinfo()
    • 09I. getpeername()
    • 09J. errno
    • 09K. fcntl()
    • 09L. htons(), htonl(), ntohs(), ntohl()
    • 09M. inet_ntoa(), inet_aton(), inet_addr
    • 09N. inet_ntop(), inet_pton()
    • 09O. listen()
    • 09P. perror(), strerror()
    • 09Q. poll()
    • 09R. recv(), recvfrom()
    • 09S. select()
    • 09T. setsockopt(), getsockopt()
    • 09U. send(), sendto()
    • 09V. shutdown()
    • 09W. socket()
    • 09X. struct sockaddr and pals
    1. More References
    • 10A. Books
    • 10B. Web References
    • 10C. RFCs

์ด์ฐฌํฌ (MarkiiimarK)
Never Stop Learning.