Appendix A |
Appendix A
|
Socket Options
|
Appendix B |
Appendix B
|
IOCTL Requests
|
Appendix C |
Appendix C
|
Data Types
|
C.1
|
OpenVMS Data Types
|
C.2
|
C and C++ Implementations
|
Appendix D |
Appendix D
|
Error Codes
|
Appendix E |
Appendix E
|
Porting Applications to IPv6
|
E.1
|
Using AF_INET6 Sockets
|
E.2
|
Name Changes
|
E.3
|
Structure Changes
|
E.3.1
|
in_addr Structure
|
E.3.2
|
sockaddr Structure
|
E.3.3
|
sockaddr_in Structure
|
E.3.4
|
hostent Structure
|
E.4
|
Function Changes
|
E.4.1
|
gethostbyaddr() Function
|
E.4.2
|
gethostbyname() Function
|
E.4.3
|
inet_aton() Function
|
E.4.4
|
inet_ntoa() Function
|
E.4.5
|
inet_addr() Function
|
E.5
|
Other Application Changes
|
E.5.1
|
Comparing IP Addresses
|
E.5.2
|
Comparing an IP Address to the Wildcard Address
|
E.5.3
|
Using int Data Types to Hold IP Addresses
|
E.5.4
|
Using Functions that Return IP Addresses
|
E.5.5
|
Changing Socket Options
|
E.6
|
Sample Client/Server Programs
|
E.6.1
|
Programs Using AF_INET Sockets
|
E.6.1.1
|
Client Program
|
E.6.1.2
|
Server Program
|
E.6.2
|
Programs Using AF_INET6 Sockets
|
E.6.2.1
|
Client Program
|
E.6.2.2
|
Server Program
|
E.6.3
|
Sample Program Output
|
Index |
Index |
Examples |
2-1 |
Creating a Socket (Sockets API) |
2-2 |
Creating a Socket (System Services) |
2-3 |
Binding a Socket (Sockets API) |
2-4 |
Binding a Socket (System Services) |
2-5 |
Setting a Socket to Listen (Sockets API) |
2-6 |
Setting a Socket to Listen (System Services) |
2-7 |
Initiating a Connection (Sockets API) |
2-8 |
Initiating a Connection (System Services) |
2-9 |
Accepting a Connection (Sockets API) |
2-10 |
Accepting a Connection (System Services) |
2-11 |
Getting Socket Information (Sockets API) |
2-12 |
Getting Socket Information (System Services) |
2-13 |
Setting Socket Options (Sockets API) |
2-14 |
Setting Socket Options (System Services) |
2-15 |
Reading Data (Sockets API) |
2-16 |
Reading Data (System Services) |
2-17 |
Reading OOB Data (Sockets API) |
2-18 |
Reading OOB Data (System Services) |
2-19 |
Peeking at Data (Sockets API) |
2-20 |
Writing Data (Sockets API) |
2-21 |
Writing Data (System Services) |
2-22 |
Writing OOB Data (Sockets API) |
2-23 |
Writing OOB Data (System Services) |
2-24 |
BIND Lookup (Sockets API) |
2-25 |
BIND Lookup (System Services) |
2-26 |
Closing and Deleting a Socket (Sockets API) |
2-27 |
Closing and Deleting a Socket (System Services) |
2-28 |
Shutting Down a Socket (Sockets API) |
2-29 |
Shutting Down a Socket (System Services) |
Figures |
2-1 |
Client/Server Communication Process Using TCP |
2-2 |
UDP Socket Communication Process |
5-1 |
I/O Status Block for a Successful READ or WRITE Operation |
5-2 |
Specifying an Input Parameter List |
5-3 |
Setting Socket Options |
5-4 |
Setting IOCTL Parameters |
5-5 |
Specifying an Output Parameter List |
5-6 |
Getting Socket Options |
5-7 |
Getting IOCTL Parameters |
5-8 |
Specifying IPv4 Socket Names (BSD Version 4.3) |
5-9 |
Specifying IPv4 Socket Names (BSD Version 4.4) |
5-10 |
Specifying IPv6 Socket Names (BSD Version 4.4) |
5-11 |
Specifying a Buffer List |
6-1 |
Subfunction Item List |
E-1 |
Using AF_INET Socket for IPv4 Communications |
E-2 |
Using AF_INET6 Socket to Send IPv4 Communications |
E-3 |
Using AF_INET6 Socket to Receive IPv4 Communications |
E-4 |
Using AF_INET6 Socket for IPv6 Communications |
Tables |
1 |
TCP/IP Services Documentation |
1-1 |
Network Definition Files |
1-2 |
C Language Definition Files |
1-3 |
Sockets API Libraries |
1-4 |
TCP Programming Examples |
1-5 |
UDP Programming Examples |
2-1 |
TCP Server Tasks and Related Functions |
2-2 |
TCP Client Tasks and Related Functions |
2-3 |
UDP Server Tasks and Related Functions |
2-4 |
UDP Client Tasks and Related Functions |
3-1 |
TCP Socket Types |
3-2 |
Structures for Sockets API |
3-3 |
Constants and Address Variables (IPv6) |
3-4 |
Interface Identification Functions |
3-5 |
Summary of Address-Testing Macros |
3-6 |
Differences Between IPv4 and IPv6 Raw Sockets |
3-7 |
ICMPv6 Filtering Macros |
3-8 |
Optional Information and Socket Options |
3-9 |
Socket Calls for Routing Header Name Description |
3-10 |
Socket Calls for Options Headers |
3-11 |
errno Values |
4-1 |
Sockets API Functions |
4-2 |
ai_flags Member Values |
4-3 |
getnameinfo() Flags |
5-1 |
$QIO Arguments |
5-2 |
Network Symbol Definition Files |
5-3 |
$QIO Function Codes |
5-4 |
$QIO Function-Independent Arguments |
5-5 |
$QIO Function-Dependent Arguments |
6-1 |
OpenVMS System Service and Equivalent Sockets API Function |
6-2 |
Network Pseudodevice Driver I/O Functions |
6-3 |
Subfunction Codes |
6-4 |
Call Codes |
6-5 |
Read Flags |
6-6 |
Socket Types |
6-7 |
List Codes for the p5 Item |
6-8 |
Characteristic Mask Bits |
6-9 |
Protocol Type Codes |
6-10 |
Service Type Codes |
A-1 |
Socket Options |
A-2 |
TCP Protocol Options |
A-3 |
IP Protocol Options |
A-4 |
IPv6 Socket Options |
B-1 |
Terminal Compatibility Operations |
B-2 |
Socket Operations |
B-3 |
Interface Operations |
B-4 |
Routing Table Operations |
B-5 |
ARP Cache Operations |
C-1 |
TCP/IP Services Usage Data Type Entries |
C-2 |
C and C++ Implementations |
D-1 |
Translation of Socket Error Codes to OpenVMS Status Codes |
E-1 |
Name Changes |