• Aucun résultat trouvé

IFT 585 Télématique Thème 4 Programmation avec la couche transport

N/A
N/A
Protected

Academic year: 2022

Partager "IFT 585 Télématique Thème 4 Programmation avec la couche transport"

Copied!
27
0
0

Texte intégral

(1)

IFT 585 Télématique

Thème 4

Programmation avec

la couche transport

(2)

Thème 4 Programmation

Plan:

4.1 Généralités

4.2 UDP

4.3 TCP

(3)

Généralités

L'entête du paquet UDP comporte un champ longueur qui indique la longueur du paquet

Ce champ possède 16 bits

2

16

= 65535 octets = maximum acceptable par la couche réseau

Des octets sont nécesaires pour l'entête et le routage >>> 65515 octets est un maximum strict de données.

Le protocole Ethernet de la couche physique possède une limite de 1500

octets >>> maximum recommandé = 2

10

à 1500 octets.

(4)

Thème 4 Programmation

Plan:

4.1 Généralités

4.2 UDP

4.3 TCP

(5)

UDP (1)

Modèle fig. 2.35 Kurose p. 173

(6)

UDP (2)

Application fig. 2.34 Kurose p. 172

(7)

UDP (3)

import java.io.*;

import java.net.*;

class UDPClient {

public static void main(String args[]) throws Exception{

BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));

DatagramSocket clientSocket = new DatagramSocket();

InetAddress IPAddress = InetAddress.getByName("localhost");

byte[] sendData = new byte[1024];

byte[] receiveData = new byte[1024];

String sentence = inFromUser.readLine();

(8)

UDP (3)

sendData = sentence.getBytes();

DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876);

clientSocket.send(sendPacket);

DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);

clientSocket.receive(receivePacket);

String modifiedSentence = new String(receivePacket.getData());

System.out.println("FROM SERVER: " + modifiedSentence);

clientSocket.close();

}}

(9)

UDP (4)

import java.io.*;

import java.net.*;

class UDPClient {

public static void main(String args[]) throws Exception{

(10)

UDP (5)

BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));

DatagramSocket clientSocket = new DatagramSocket();

InetAddress IPAddress = InetAddress.getByName("localhost");

byte[] sendData = new byte[1024];

byte[] receiveData = new byte[1024];

String sentence = inFromUser.readLine();

(11)

UDP (6)

sendData = sentence.getBytes();

DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876);

clientSocket.send(sendPacket);

(12)

UDP (7)

DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);

clientSocket.receive(receivePacket);

String modifiedSentence = new String(receivePacket.getData());

System.out.println("FROM SERVER: " + modifiedSentence);

clientSocket.close();

}}

(13)

UDP (8)

import java.io.*;

import java.net.*;

class UDPServer {

public static void main(String args[]) throws Exception {

DatagramSocket serverSocket = new DatagramSocket(9876);

byte[] receiveData = new byte[1024];

byte[] sendData = new byte[1024];

(14)

UDP (9)

while(true) {

DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);

serverSocket.receive(receivePacket);

String sentence = new String( receivePacket.getData());

InetAddress IPAddress = receivePacket.getAddress();

int port = receivePacket.getPort();

(15)

UDP (10)

String capitalizedSentence = sentence.toUpperCase();

sendData = capitalizedSentence.getBytes();

DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);

serverSocket.send(sendPacket);

} } }

(16)

Thème 4 Programmation

Plan:

4.1 Généralités

4.2 UDP

4.3 TCP

(17)

TCP (1)

Modèle fig. 2.31 Kurose p. 162

(18)

TCP (2)

Application fig. 2.32 Kurose p. 163

(19)

TCP (3)

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));

System.out.println("Client ready for input");

while ((sentence = inFromUser.readLine()) != null) {

Socket clientSocket = new Socket("hostname", 6789);

(20)

TCP (3)

DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());

BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

outToServer.writeBytes(sentence + '\n');

modifiedSentence = inFromServer.readLine();

System.out.println("FROM SERVER: " + modifiedSentence);

clientSocket.close();

}

} // end main } // end class

(21)

TCP (4)

while ((sentence = inFromUser.readLine()) != null) {

Socket clientSocket = new Socket("hostname", 6789);

(22)

TCP (5)

DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());

outToServer.writeBytes(sentence + '\n');

BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

modifiedSentence = inFromServer.readLine();

System.out.println("FROM SERVER: " + modifiedSentence);

(23)

TCP (6)

clientSocket.close();

}

} // end main } // end class

(24)

TCP (7)

Stream fig. 2.33 Kurose p. 165

(25)

TCP (8)

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);

System.out.println("Server Ready for Connection");

(26)

TCP (9)

while(true) {

Socket connectionSocket = welcomeSocket.accept();

System.out.println("Client Made Connection");

BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));

DataOutputStream outToClient = new

DataOutputStream(connectionSocket.getOutputStream());

clientSentence = inFromClient.readLine();

(27)

TCP (10)

System.out.println("Client sent: " + clientSentence);

capitalizedSentence = clientSentence.toUpperCase() + '\n';

outToClient.writeBytes(capitalizedSentence);

connectionSocket.close();

}

} // end main } // end class

Références

Documents relatifs

[r]

[r]

La d´ erivabilit´ e sur R de l’argument sinus hyperbolique implique alors par produit puis composition celle de

[r]

[r]

!  Cependant, dans le seul cas d ’ un enseignement gratuit, une par=cipa=on aux frais de reproduc=on pourra être demandée, mais elle ne pourra être supérieure au prix du papier

Cliquez ici pour telecharger le

[r]