Beej's Guide to Network Programming
来源:互联网 发布:js遍历object对象list 编辑:程序博客网 时间:2024/05/18 01:50
Beej's Guide to Network Programming
Using Internet Sockets
Brian "Beej Jorgensen" Hall
beej@beej.us
Version 3.0.15
July 3, 2012
Copyright © 2012 Brian "Beej Jorgensen" Hall
Contents
- 1. Intro
- 1.1. Audience
- 1.2. Platform and Compiler
- 1.3. Official Homepage and Books For Sale
- 1.4. Note for Solaris/SunOS Programmers
- 1.5. Note for Windows Programmers
- 1.6. Email Policy
- 1.7. Mirroring
- 1.8. Note for Translators
- 1.9. Copyright and Distribution
- 2. What is a socket?
- 2.1. Two Types of Internet Sockets
- 2.2. Low level Nonsense and Network Theory
- 3. IP Addresses,
struct s, and Data Munging - 3.1. IP Addresses, versions 4 and 6
- 3.2. Byte Order
- 3.3.
struct s - 3.4. IP Addresses, Part Deux
- 4. Jumping from IPv4 to IPv6
- 5. System Calls or Bust
- 5.1. getaddrinfo()—Prepare to launch!
- 5.2. socket()—Get the File Descriptor!
- 5.3. bind()—What port am I on?
- 5.4. connect()—Hey, you!
- 5.5. listen()—Will somebody please callme?
- 5.6. accept()—"Thank you for calling port3490."
- 5.7. send() and recv()—Talk to me,baby!
- 5.8. sendto() andrecvfrom()—Talk to me, DGRAM-style
- 5.9. close() andshutdown()—Get outta my face!
- 5.10. getpeername()—Who are you?
- 5.11. gethostname()—Who am I?
- 6. Client-Server Background
- 6.1. A Simple Stream Server
- 6.2. A Simple Stream Client
- 6.3. Datagram Sockets
- 7. Slightly Advanced Techniques
- 7.1. Blocking
- 7.2. select()—Synchronous I/O Multiplexing
- 7.3. Handling Partial send()s
- 7.4. Serialization—How to Pack Data
- 7.5. Son of Data Encapsulation
- 7.6. Broadcast Packets—Hello, World!
- 8. Common Questions
- 9. Man Pages
- 9.1. accept()
- 9.2. bind()
- 9.3. connect()
- 9.4. close()
- 9.5. getaddrinfo(), freeaddrinfo(),gai_strerror()
- 9.6. gethostname()
- 9.7. gethostbyname(), gethostbyaddr()
- 9.8. getnameinfo()
- 9.9. getpeername()
- 9.10. errno
- 9.11. fcntl()
- 9.12. htons(), htonl(),ntohs(),ntohl()
- 9.13. inet_ntoa(), inet_aton(),inet_addr
- 9.14. inet_ntop(), inet_pton()
- 9.15. listen()
- 9.16. perror(), strerror()
- 9.17. poll()
- 9.18. recv(), recvfrom()
- 9.19. select()
- 9.20. setsockopt(), getsockopt()
- 9.21. send(), sendto()
- 9.22. shutdown()
- 9.23. socket()
- 9.24.
struct sockaddr and pals - 10. More References
- 10.1. Books
- 10.2. Web References
- 10.3. RFCs
- Beej's Guide to Network Programming
- Beej's Guide to Network Programming
- (Manual) Beej's Guide to Network Programming
- Beej's Guide to Network Programming
- Beej’s Guide Network to Programming 系列连载01
- Beej’s Guide Network to Programming 系列连载02
- Beej’s Guide Network to Programming 系列连载03
- Beej’s Guide Network to Programming 系列连载04
- Beej’s Guide Network to Programming 系列连载05
- Beej’s Guide Network to Programming 系列连载06
- Beej’s Guide Network to Programming 系列连载07
- Beej’s Guide Network to Programming 系列连载08
- Beej’s Guide Network to Programming 系列连载09
- Beej’s Guide Network to Programming 系列连载10
- Beej’s Guide Network to Programming 系列连载11
- Beej’s Guide Network to Programming 系列连载12
- Beej’s Guide Network to Programming 系列连载13
- Beej’s Guide Network to Programming 系列连载14
- C#设计模式之代理模式(一)
- Android中Context详解
- 游走Android系列之广播接收(Broadcast Receiver)
- Editors for cocos2d-x Texture,Tilemap,Particle,Action,Level etc
- PHP调用java的class
- Beej's Guide to Network Programming
- 设计模式之抽象工厂模式
- Android之线程间通信
- Python 静态方法和静态类
- 2011年最新企业offer(待遇)比较(已更新至224家)
- 我的Linux PS1 变量
- ARM汇编程序---通过ARM汇编调用C语言函数实现累加
- Android 开发环境搭建
- RunLoop使用