

Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Socket programming using both tcp and udp at the application layer. It covers the concept of a socket as a door between application processes and transport protocols, the reliable transfer of bytes using tcp, and the unreliable transfer of datagrams using udp. The document also provides examples of java client-server applications using both tcp and udp.
Typology: Study notes
1 / 3
This page cannot be seen from the preview
Don't miss anything!


2: Application Layer 1
2: Application Layer 2
process TCP with buffers, variables socket controlled by application developer controlled by operating system
process TCP with buffers, variables socket controlled by application developer controlled by operating system
2: Application Layer 3
Client must contact server ❒ server process must first be running ❒ server must have created socket (door) that welcomes client’s contact Client contacts server by: ❒ creating client-local TCP socket ❒ specifying IP address, port number of server process ❒ When client creates socket: client TCP establishes connection to server TCP ❒ When contacted by client, server TCP creates new socket for server process to communicate with client ❍ allows server to talk with multiple clients ❍ source port numbers used to distinguish clients (more in Chap 3)
2: Application Layer 4
outToServer to network from network inFromServer inFromUser keyboard monitor
clientSocket stream^ input stream^ input output stream socket^ TCP
client TCP socket 2: Application Layer 5
outToServer to network from network inFromServer inFromUser keyboard monitor
clientSocket stream^ input stream^ input output stream socket^ TCP
client TCP socket 2: Application Layer 6
wait for incoming connection request connectionSocket welcomeSocket.accept() = create socket, port= x , for incoming request: welcomeSocket = ServerSocket() create socket, connect to hostid , port= x clientSocket Socket() = close connectionSocket read reply from clientSocket close clientSocket
read request from^ send request using clientSocket connectionSocket write reply to connectionSocket
connection setup
2: Application Layer 7 Example: Java client (TCP) import java.io.; import java.net.; class TCPClient { public static void main(String argv[]) throws Exception { String sentence; String modifiedSentence; BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); Socket clientSocket = new Socket("hostname", 6789); DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream()); Create input stream Create client socket, connect to server Create output stream attached to socket 2: Application Layer 8 Example: Java client (TCP), cont. BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); sentence = inFromUser.readLine(); outToServer.writeBytes(sentence + '\n'); modifiedSentence = inFromServer.readLine(); System.out.println("FROM SERVER: " + modifiedSentence); clientSocket.close(); } } Create input stream attached to socket Send line to server Read line from server 2: Application Layer 9 Example: Java server (TCP) import java.io.; import java.net.; class TCPServer { public static void main(String argv[]) throws Exception { String clientSentence; String capitalizedSentence; ServerSocket welcomeSocket = new ServerSocket(6789); while(true) { Socket connectionSocket = welcomeSocket.accept(); BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream())); Create welcoming socket at port 6789 Wait, on welcoming socket for contact by client Create input stream, attached to socket 2: Application Layer 10 Example: Java server (TCP), cont DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream()); clientSentence = inFromClient.readLine(); capitalizedSentence = clientSentence.toUpperCase() + '\n'; outToClient.writeBytes(capitalizedSentence); } } } Read in line from socket Create output stream, attached to socket Write out line to socket End of while loop, loop back and wait for another client connection 2: Application Layer 11 Socket programming with UDP
2: Application Layer 12 Client/server socket interaction: UDP close clientSocket Server (running on hostid ) read reply from clientSocket create socket, clientSocket = DatagramSocket() Client Create, address ( send datagram request hostid, port=x, using clientSocket create socket, port= x , for incoming request: serverSocket = DatagramSocket() read request from serverSocket write reply to serverSocket specifying client host address, port number