API

Post on 21-Apr-2017

19 views 0 download

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