NTUT, TAIWAN 1
Mobile Computing & Software Engineering Lab
The Socket API
- Prof. Chuan-Ming Liu
The Socket API Prof. Chuan-Ming Liu Computer Science and - - PowerPoint PPT Presentation
Mobile Computing & Software Engineering Lab The Socket API Prof. Chuan-Ming Liu Computer Science and Information Engineering National Taipei University of Technology Taipei, TAIWAN NTUT, TAIWAN 1 Mobile Computing & Software
NTUT, TAIWAN 1
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 2
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 3
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 4
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 5
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 6
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 7
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 8
Mobile Computing & Software Engineering Lab
1 2 3 descriptor table (one per process) internal data structure for file 0 internal data structure for file 1 internal data structure for file 2 internal data structure for file 3
NTUT, TAIWAN 9
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 10
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 11
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 12
Mobile Computing & Software Engineering Lab
Remote port: Local port: Remote IP: Local IP: Service: SOCK_STREAM Family: PF_INET data structure for a socket pointers to
socket structures 1 2 3 socket descriptor table (one per process) 4
NTUT, TAIWAN 13
Mobile Computing & Software Engineering Lab
The socket is completely general and can be used for arbitrary communication Application specifies how it will be used
Passive Active
NTUT, TAIWAN 14
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 15
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 16
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 17
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 18
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 19
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 20
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 21
Mobile Computing & Software Engineering Lab
struct sockaddr_in { u_char sin_len; /* total length */ u_short sin_family; /* type of address*/ u_short sin_port; /* port number*/ struct in_addr sin_addr; /* IP address*/ char sin_zero[8]; /* unused*/ };
NTUT, TAIWAN 22
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 23
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 24
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 25
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 26
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 27
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 28
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 29
Mobile Computing & Software Engineering Lab
The amount of data received depends on the buffer size defined
NTUT, TAIWAN 30
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 31
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 32
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 33
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 34
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 35
Mobile Computing & Software Engineering Lab
NTUT, TAIWAN 36
Mobile Computing & Software Engineering Lab
socket connect send recv close
NTUT, TAIWAN 37
Mobile Computing & Software Engineering Lab
bind accept listen socket send recv close
NTUT, TAIWAN 38
Mobile Computing & Software Engineering Lab