chapter 16 · byte manipulation functions ... byte ordering. 16.3. m˜g˜˜˜˜h˜˜˜ ©t˜˜...

44
MG H ©T MG H C I 20 Chapter 16 Socket Interface

Upload: doandien

Post on 09-Sep-2018

223 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Chapter 16

SocketInterface

Page 2: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

CONTENTS• SOME DEFINITIONS• SOCKETS• BYTE ORDERING• ADDRESS TRANSFORMATION• BYTE MANIPULATION FUNCTIONS• INFORMATION ABOUT REMOTE HOST• SOCKET SYSTEM CALLS• CONNECTIONLESS ITERATIVE SERVER

Page 3: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

CONTENTS (continued)• UDP CLIENT-SERVER PROGRAMS• CONNECTION-ORIENTED CONCURRENT

SERVER• TCP CLIENT-SERVER PROGRAMS

Page 4: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

SOME DEFINITIONS

16.1

Page 5: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-1

Data types

Page 6: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-2

Internet address structure

Page 7: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

SOCKETS

16.2

Page 8: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-3

Socket address

Page 9: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-4

Socket structure

Page 10: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-5

Socket types

Page 11: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

BYTE ORDERING

16.3

Page 12: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-6

Big-endian byte order

Page 13: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-7

Little-endian byte order

Page 14: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

The byte order for the TCP/IPprotocol suite is big endian.

Page 15: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-8

Bite-order transformation

Page 16: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-9

Declarations for byte-order transformation

Page 17: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

ADDRESSTRANSFORMATION

16.4

Page 18: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-10

Address transformation

Page 19: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-11

Declarations for address

transformation functions

Page 20: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

BYTEMANIPULATION

FUNCTIONS

16.5

Page 21: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-12

Declarations for byte-manipulation functions

Page 22: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

INFORMATIONABOUT REMOTE

HOST

16.6

Page 23: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-13

Declaration for gethostbyname

Page 24: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-14 Hostent structure

Page 25: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

SOCKET SYSTEMCALLS

16.7

Page 26: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-15

Declaration for socket function

Page 27: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-16

Declaration for bind function

Page 28: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-17

Declaration for connect function

Page 29: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-18

Declaration for listen function

Page 30: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-19

Declaration for accept function

Page 31: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-20

Declaration for sendto function

Page 32: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-21

Declaration for recvfrom function

Page 33: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-22

Declaration for read function

Page 34: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-23

Declaration for write function

Page 35: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-24

Declaration for close function

Page 36: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

CONNECTIONLESSITERATIVESERVER

16.8

Page 37: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-25

Socket interfacefor connectionless

iterative server

Page 38: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

UDP CLIENT-SERVERPROGRAMS

16.9

Page 39: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

CONNECTION-ORIENTEDCONCURRENT SERVER

16.10

Page 40: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-26

Socket interfacefor connection-oriented

concurrent server

Page 41: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-26 (repeated), Part I

Page 42: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-26 (repeated), Part II

Page 43: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-27, Part IClientand

Server

Page 44: Chapter 16 · BYTE MANIPULATION FUNCTIONS ... BYTE ORDERING. 16.3. M˜G˜˜˜˜H˜˜˜ ©T˜˜ M˜G˜˜˜˜H˜˜˜ C˜˜˜˜˜˜˜˜˜ I˜˜˜˜ 2000. Figure 16-6. Big-endian byte

M�G����H��� ©T�� M�G����H��� C��������� I���� 2000

Figure 16-27, Part II