Class TcpSocket

java.lang.Object
tsp.csc4509.tcpservices.TcpSocket
All Implemented Interfaces:
AutoCloseable

public class TcpSocket extends Object implements AutoCloseable
Classe qui 1. établit la connexion d'un client ; 2. fournit les méthodes d'échange de données sur un canal TCP connecté (par un client ou un serveur).
Author:
Eric Lallet.
  • Constructor Summary

    Constructors
    Constructor
    Description
    TcpSocket(String serverHost, int serverPort)
    Constructeur utilisé par le client pour ouvrir une connexion vers un serveur, et créer un instance TcpSocket.
    Constructeur utilisé par les serveurs pour créer une instance TcpSocket à partir d'une connexion obtenue suite à un accept.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    int
    Renvoie tous les octets reçus sur la connexion TCP tant que celle-ci reste ouverte.
    int
    Reçoit des données sur la connexion TCP jusqu'à la fermeture la connexion entrante ou le remplissage du buffer passé en paramètre.
    Reçoit un objet sérialisable sur la connexion TCP.
    int
    Reçoit un entier sur la connexion TCP.
    int
    Envoie les données contenues dans le buffer sur la connexion TCP.
    int
    Envoie un objet instancié sérialisable sur la connexion TCP.
    int
    sendSize(int size)
    Envoie un entier sur la connexion TCP.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • TcpSocket

      public TcpSocket(SocketChannel rwChan)
      Constructeur utilisé par les serveurs pour créer une instance TcpSocket à partir d'une connexion obtenue suite à un accept.
      Parameters:
      rwChan - le canal déjà connecté suite à l'accept.
    • TcpSocket

      public TcpSocket(String serverHost, int serverPort) throws IOException
      Constructeur utilisé par le client pour ouvrir une connexion vers un serveur, et créer un instance TcpSocket.
      Parameters:
      serverHost - le nom de la machine où tourne le serveur.
      serverPort - le numéro du port TCP utilisé par le serveur.
      Throws:
      IOException - toutes les exceptions d'entrées/sorties.
  • Method Details

    • sendBuffer

      public int sendBuffer(ByteBuffer buffer) throws IOException
      Envoie les données contenues dans le buffer sur la connexion TCP.
      Parameters:
      buffer - le buffer contenant les données à envoyer.
      Returns:
      le nombre d'octets envoyés.
      Throws:
      IOException - toutes les exceptions d'entrées/sorties.
    • sendObject

      public int sendObject(Serializable s) throws IOException
      Envoie un objet instancié sérialisable sur la connexion TCP.
      Parameters:
      s - référence sur l'objet à envoyer.
      Returns:
      le nombre d'octets envoyés.
      Throws:
      IOException - toutes les exceptions d'entrées/sorties.
    • sendSize

      public int sendSize(int size) throws IOException
      Envoie un entier sur la connexion TCP.
      Parameters:
      size - la valeur de l'entier à envoyer.
      Returns:
      le nombre d'octets envoyés.
      Throws:
      IOException - toutes les exceptions d'entrées/sorties.
    • receiveBuffer

      public int receiveBuffer(ByteBuffer buffer) throws IOException
      Reçoit des données sur la connexion TCP jusqu'à la fermeture la connexion entrante ou le remplissage du buffer passé en paramètre. La méthode remplit le buffer à partir du premier octet de celui-ci, en écrasant éventuellement des données déjà présente.
      Parameters:
      buffer - le buffer où stocker les données.
      Returns:
      le nombre d'octets placés dans le buffer.
      Throws:
      IOException - toutes les exceptions d'entrées/sorties.
    • receiveSize

      public int receiveSize() throws IOException
      Reçoit un entier sur la connexion TCP.
      Returns:
      la valeur de l'entier reçu.
      Throws:
      IOException - le nombre d'octets placés dans le buffer.
    • receiveObject

      public Serializable receiveObject() throws IOException, ClassNotFoundException
      Reçoit un objet sérialisable sur la connexion TCP.
      Returns:
      la référence sur l'objet reçu.
      Throws:
      IOException - toutes les exceptions d'entrées/sorties
      ClassNotFoundException - l'exception levée si l'objet reçu est d'une classe inconnue de notre programme.
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Throws:
      IOException
    • echo

      public int echo() throws IOException
      Renvoie tous les octets reçus sur la connexion TCP tant que celle-ci reste ouverte.
      Returns:
      le nombre total d'octets reçus.
      Throws:
      IOException - toutes les exceptions d'entrées/sorties.