Professional Documents
Culture Documents
Inet Addresses
Inet Addresses
I YEAR II SEM
Method Description
public static InetAddress It returns the instance of
getByName(String host) throws InetAddress containing
UnknownHostException LocalHost IP and name.
3
Socket programming
Goal: learn how to build client/server application that communicate
using sockets
2: Application Layer 4
Socket-programming using TCP
Socket: a door between application process and end-end-transport
protocol (UCP or TCP)
TCP service: reliable transfer of bytes from one process to
another
controlled by
controlled by process application
application process
developer
developer socket
socket TCP with controlled by
controlled by TCP with
buffers, operating
operating buffers, internet system
system variables variables
host or host or
server server
2: Application Layer 5
Socket programming with TCP
Client must contact server When client creates socket: client
server process must first be TCP establishes connection to server
running TCP
server must have created socket When contacted by client, server
(door) that welcomes client’s TCP creates new socket for server
contact process to communicate with client
allows server to talk with multiple
Client contacts server by:
clients
creating client-local TCP socket
specifying IP address, port number
of server process application viewpoint
TCP provides reliable, in-order
transfer of bytes (“pipe”)
between client and server
2: Application Layer 6
Socket programming with TCP
client socket
2: Application Layer 7
Client/server socket interaction: TCP
involves 3-way
Server (running on hostid) Client handshake
create socket, server client
port=x, for
incoming request:
welcomeSocket = open
ServerSocket()
open
TCP create socket,
wait for incoming
connection request connection setup connect to hostid, port=x
clientSocket =
connectionSocket =
welcomeSocket.accept() Socket()
write reply to
connectionSocket read reply from
clientSocket
close
connectionSocket close
clientSocket
2: Application Layer 8
Example: Java client (TCP)
import java.io.*;
import java.net.*;
class TCPClient {
sentence = inFromUser.readLine();
Send line
to server outToServer.writeBytes(sentence + '\n');
clientSocket.close();
}
}
2: Application Layer 10
Example: Java server (TCP)
import java.io.*;
import java.net.*;
class TCPServer {
2: Application Layer 11
Example: Java server (TCP), cont
Create output
stream, attached
DataOutputStream outToClient =
to socket
new DataOutputStream(connectionSocket.getOutputStream());
Read in line
from socket clientSentence = inFromClient.readLine();
2: Application Layer 12
Socket programming with UDP
2: Application Layer 13
Client/server socket interaction: UDP
Server (running on hostid) Client
write reply to
serverSocket
read reply from
specifying client
clientSocket
host address,
port umber close
clientSocket
2: Application Layer 14
Example: Java client (UDP)
import java.io.*;
import java.net.*;
class UDPClient {
public static void main(String args[]) throws Exception
{
Create
input stream BufferedReader inFromUser =
Create new BufferedReader(new InputStreamReader(System.in));
client socket
DatagramSocket clientSocket = new DatagramSocket();
Translate
hostname to IP InetAddress IPAddress = InetAddress.getByName("hostname");
address using DNS
byte[] sendData = new byte[1024];
byte[] receiveData = new byte[1024];
2: Application Layer 16
Example: Java server (UDP)
import java.io.*;
import java.net.*;
class UDPServer {
public static void main(String args[]) throws Exception
Create {
datagram socket
DatagramSocket serverSocket = new DatagramSocket(9876);
at port 9876
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];
while(true)
{
Create space for
received datagram DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
Receive serverSocket.receive(receivePacket);
datagram
2: Application Layer 17
Example: Java server (UDP), cont
String sentence = new String(receivePacket.getData());
Get IP addr
port #, of InetAddress IPAddress = receivePacket.getAddress();
sender int port = receivePacket.getPort();
sendData = capitalizedSentence.getBytes();
Create datagram
DatagramPacket sendPacket =
to send to client
new DatagramPacket(sendData, sendData.length, IPAddress,
port);
Write out
datagram serverSocket.send(sendPacket);
to socket }
}
} End of while loop,
loop back and wait for
another datagram
2: Application Layer 18
Chapter 2: Summary
Our study of network apps now complete!
application service specific protocols:
requirements: http
reliability, bandwidth, delay ftp
client-server paradigm smtp, pop3
2: Application Layer 19
Chapter 2: Summary
Most importantly: learned about protocols
2: Application Layer 20