Socket Address Structures

12

Click here to load reader

Transcript of Socket Address Structures

Page 1: Socket Address Structures

AYYAPPAN.K11MTH02MTECH-I

SOCKET ADDRESS STRUCTURES

Page 2: Socket Address Structures

Socket programming

A socket is a communications connection point (endpoint) that we can name and address in a network.

Socket programming shows how to use socket APIs to establish communication links between remote and local processes.

Sockets allow we to exchange information between processes on the same machine or across a network

Page 3: Socket Address Structures

Socket address structure

Sockets use the sockaddr address structure to pass and receive addresses. This structure does not require the socket API to recognize the addressing format.

A socket address structures is always passed by reference when passed as an argument to any socket functions.

Page 4: Socket Address Structures

UNIX 98 compatible structure

struct sockaddr { uint8_t sa_len; sa_family_t sa_family char sa_data[14] }; struct sockaddr_storage { uint8_t ss_len; sa_family_t ss_family; char _ss_pad1[_SS_PAD1SIZE]; char* _ss_align; char _ss_pad2[_SS_PAD2SIZE]; };

Page 5: Socket Address Structures

Address structure field

sa_len This field contains the length of the address

for UNIX 98 specifications.sa_family This field defines the address family. This

value is specified for the address family on the socket() call.

Page 6: Socket Address Structures

sa_data This field contains 14 bytes that are

reserved to hold the address itself. The sa_data length of 14 bytes is a

placeholder for the address. sockaddr_storage This field declares storage for any address

family address.This structure is large enough and aligned for

any protocol-specific structure

Page 7: Socket Address Structures

Value-Result Arguments

The length of the structure is passed as an argument. But the way in which the length is passed depends on which direction the structure is being passed: from the process to the kernel, or vice versa.

Three functions, bind, connect, and sendto, pass a socket address structure from the process to the kernel. One argument to these three functions is the pointer to the socket address structure and another argument is the integer size of the structure

Page 8: Socket Address Structures

Socket address structure passed from process to kernel.

 

Page 9: Socket Address Structures

Socket address structure passed from kernel to process.

Page 10: Socket Address Structures

inet_aton, inet_addr, and inet_ntoa Functions

They convert Internet addresses between ASCII strings (what humans prefer to use) and network byte ordered binary values

inet_aton, inet_ntoa, and inet_addr convert an IPv4 address from a dotted-decimal string (e.g., "206.168.112.96") to its 32-bit network byte ordered binary value

Page 11: Socket Address Structures

Socket address structures are an integral part of every network program. We allocate them, fill them in, and pass pointers to them to various socket functions.

Socket address structures are self-defining because they always begin with a field (the "family") that identifies the address family contained in the structure

Page 12: Socket Address Structures

THANK YOU