1. DEFINITION
AN 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
STEPS
1 .CREATINGA 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);
2. 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. ACCEPTINGA 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.
PROGRAMFORSERVER:
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 1254
SOCKET S1=S.ACCEPT(); //WAIT AND ACCEPT A CONNECTION
OUTPUTSTREAM S1OUT=S1.GETOUTPUTSTREAM(); //CREATE I/O STREAM
DATAOUTPUTSTREAM DOS=NEW DATAOUTPUTSTREAM(S1OUT);
DOS.WRITEUTF(“HI THERE”); //SEND A STRING
DOS.CLOSE(); //CLOSE THE CONNECTION BUT NOT SERVER SOCKET
S1OUT.CLOSE();
S1CLOSE();
}
}
PROGRAMFORCLIENT
IMPORT JAVA.NET.*;
IMPORT JAVA.IO.*;
PUBLIC CLASS SIMPLECLIENT
{
3. PUBLIC STATIC VOIDMAIN(STRING ARGS[])THROWS IOEXCEPTION
{
SOCKETS1=NEWSOCKET(“LOCALHOST”,1254); //CREATE A SOCKET AT PORT 1254
INPUTSTREAM S1IN=S1.GETINPUTSTREAM(); //GET AN INPUT FILE HANDLE
FROM THE SOCKET AND READ THE INPUT
DATAINPUTSTREAM DIS=NEW DATAINPUTSTREAM(S1IN);
STRING ST=NEW STRING(DIS.READUTF());
SYSTEM.OUT.PRINTLN(ST);
DIS.CLOSE(); //CLOSE THE SOCKET
S1IN.CLOSE();
S1.CLOSE();
}
}
PROCESSMODEL
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-PROTOCOLMODEL
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.
4. 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 BUFFERS
THE APPLICATION PROCESS PROVIDE THE BUFFER TO HOLD THE OUTBOUND
MESSAGE DURING OPERATION AND FOR THE INCOMING MESSAGE DURING THE
RECEIVER OPERATRION.