API
-
Upload
nithya-nithya -
Category
Engineering
-
view
19 -
download
0
Transcript of API
DEFINITIONAN API IS SET OF COMMANDS,FUNCTION,AND PROTOCOL WHICH PROGRAMMERS CAN USE WHEN BUILDING SOFTWARE FOR A SPECIFIC OPERATING SYSTEM.
A SOCKET IS ONE ENDPOINT OF A TWO-WAY COMMUNICATION LINK BETWEEN TWO PROGRAM RUNNING ON THE NETWORK.
AN ENDPOINT IS A COMBINATION OF IP ADDRESS AND PORT ADDRERSS. THE ADVANTAGE OF API IS THE PORTABLITY. TWO THINGS FOR SOCKET INTERFACE:
EACH PROTOCOL PROVIDES A CERTAIN SET OF SERVICES AN API PROVIDES A SYNTAX BY WHICH THE SERVICES CAN BE
INVOKED TO A PARTICULAR OS.
USES PREDEFINED FUNCTION TO INTERACT WITH THE OPERATING SYSTEM. IT IS ALSO USED FOR VEDIO GAME CONSOLES AND OTHER HARDWARE
DEVICES
STEPS1 .CREATING A SOCKET INT SOCKET (INT FAMILY, INT TYPE, INT PROTOCOL);
CREATING A SOCKET IS SIMILAR TO OPENING A FILE.
PARAMETERS: FAMILY: AF INET TYPE: SOCK_STREAM PROTOCOL: IPPROTO_TCP
2. BINDING AN ADDRESDS AND PORT NUMBER
INT BIND (INT SOCKET_FILE_DESCRIPTOR, CONST STRUCT SOCKADDR*LOCALADDRESS SOCKLEN_TADDRESSLENGTH);
WE NEED TO ASSOCIATE AN IP ADDRESS AND PORT NUMBER TO OUR
APPLICATION.
3. LISTEN FOR INCOMING CONNECTIONS
INT LISTEN (INT SOCKET_FILE_DESCRIPTOR, INT BACKLOG);
BINDING IS LIKE WAITING BY A SPECIFIC PHONE IN YOUR HOUSE AND LISTENING IS WAIT TO RING.
4. ACCEPTING A CONNECTION INT ACCEPT (INT SOCKET_FILE_DESCRIPTOR, STRUCT
SOCKADDR*CLIENTADDRESS, SOCKEN_T*ADDRLEN);
THE ACCEPT()RETURNS A NEW SOCKET FILE DESCRIPTOR FOR THE PURPOSE OF READING AND WRITING TO THE CLIENT.
PROGRAM FOR SERVER:IMPORT JAVA.NET.*;IMPORT JAVA.IO.*;PUBLIC CLASS SIMPLESERVER{PUBLIC STATIC VOIDMAIN(STRING ARGS[])THROWS IOEXCEPTION{SERVERSOCKET S=NEW SERVERSOCKET(1254); //OPEN THE SERVER ON PORT 1254SOCKET S1=S.ACCEPT(); //WAIT AND ACCEPT A CONNECTIONOUTPUTSTREAM S1OUT=S1.GETOUTPUTSTREAM(); //CREATE I/O STREAMDATAOUTPUTSTREAM DOS=NEW DATAOUTPUTSTREAM(S1OUT);DOS.WRITEUTF(“HI THERE”); //SEND A STRINGDOS.CLOSE(); //CLOSE THE CONNECTION BUT NOT SERVER SOCKETS1OUT.CLOSE();S1CLOSE();}}
PROGRAM FOR CLIENTIMPORT JAVA.NET.*;IMPORT JAVA.IO.*;PUBLIC CLASS SIMPLECLIENT{PUBLIC STATIC VOIDMAIN(STRING ARGS[])THROWS IOEXCEPTION{SOCKETS1=NEWSOCKET(“LOCALHOST”,1254); //CREATE A SOCKET AT PORT 1254INPUTSTREAM S1IN=S1.GETINPUTSTREAM(); //GET AN INPUT FILE HANDLE
FROM THE SOCKET AND READ THE INPUTDATAINPUTSTREAM DIS=NEW DATAINPUTSTREAM(S1IN);STRING ST=NEW STRING(DIS.READUTF());SYSTEM.OUT.PRINTLN(ST);
DIS.CLOSE(); //CLOSE THE SOCKETS1IN.CLOSE();S1.CLOSE();}}
PROCESS MODEL ALL THE POPULAR OPERATING SYSTEM PROVIDE AN ABSTRACTION CALLED
A PROCESS OR A THREAD. THE PROCESS ABSTRACTION MAKES THE OS TO HAVE A LOT OF THINGS
EXECUTING CONCURRENTLY. FOR DESIGNING THE NETWORK SUBSYSTEM,TWO CHOICES:
THE PROCESS-PER-PROTOCOL MODEL.THE PROCESS-PER-MESSAGE MODEL.
PROCESS-PER-PROTOCOL MODEL IN THE PROCESS-PER-PROTOCOL MODEL,EACH PROTOCOL IS IMPLEMENT BY A SEPARATE PROCESS. WHEN A MESSAGE UP OR DOWN THE PROTOCOL STACK,IT IS PASSED FROM ONE PROCESS/PROTOCOL TO ANOTHER.
PROCESS-PER-PROTOCOL
PROCESS-PER-MESSAGE MODEL IN THE PROCESS-PER-MESSAGE MODEL,EACH PROTOCOL IS TREATED AS A STATIC PIECE OF CODE AND ASSOCIATE THE PROCESSES WITH THE MESSAGE.
PROCESS-PER-MESSAGE
MESSAGE BUFFERSTHE APPLICATION PROCESS PROVIDE THE BUFFER TO HOLD THE OUTBOUND MESSAGE DURING OPERATION AND FOR THE INCOMING MESSAGE DURING THE RECEIVER OPERATRION.
COPYING MESSAGE BETWEEN APPLICATION AND NETWORK BUFFER