Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JAVA] Programmation réseaux ? Plus simple qu'en C ?

    31 octobre 2006 à 10:12:58

    Bonjour :)

    Je voudrai savoir si la programmation réseaux en JAVA est plus simple que la programmation réseaux en langage C .
    Merci :)
    • Partager sur Facebook
    • Partager sur Twitter
      31 octobre 2006 à 10:53:08

      La programmation reseau java est assez simple :)
      De ce dont je me souviens de la programmation reseau en c, c'est plus simple !

      Petits exemples :
      Serveur tcp :
      package tcp;

      import java.io.BufferedReader;
      import java.io.DataOutputStream;
      import java.io.IOException;
      import java.io.InputStreamReader;
      import java.net.ServerSocket;
      import java.net.Socket;

      /**
       * @author kokotchy
       */

      public class TCPServer {
          private ServerSocket welcomeSocket;
         
         
          public static void main(String[] args) {
              TCPServer server = new TCPServer();
          }
         
          public TCPServer() {
              String clientSentence;
              String capitalizedSentence;
              try {
                  welcomeSocket = new ServerSocket(6789);
              }
              catch (IOException e) {
                  e.printStackTrace();
              }
              System.out.println("Start listening on port 6789");
              while (true) {
                  try {
                      Socket connectionSocket = welcomeSocket.accept();
                      System.out.println("Connection from "+connectionSocket.getRemoteSocketAddress()+" on port "+connectionSocket.getLocalPort());
                      BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
                      DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
                      clientSentence = inFromClient.readLine();
                      System.out.println("Receive : "+clientSentence);
                      capitalizedSentence = clientSentence.toUpperCase() + "\n";
                      System.out.println("Send : "+capitalizedSentence);
                      outToClient.writeBytes(capitalizedSentence);
                  }
                  catch (IOException e) {
                      e.printStackTrace();
                  }
              }
          }
      }


      Client tcp :
      import java.io.BufferedReader;
      import java.io.DataOutputStream;
      import java.io.IOException;
      import java.io.InputStreamReader;
      import java.net.Socket;

      /**
       * @author kokotchy
       */

      public class TCPClient {
          private Socket clientSocket;
          private DataOutputStream outToServer = null;
         
          public static void main(String[] args) {
              TCPClient client = new TCPClient();
          }
         
          public TCPClient() {
              String sentence = null;
              String modifiedSentence = null;
              BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
              try {
                  clientSocket = new Socket("127.0.0.1",6789);
                  outToServer = new DataOutputStream(clientSocket.getOutputStream());
                  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();
              }
              catch (IOException e) {
                  e.printStackTrace();
              }
          }
      }


      Serveur udp :
      package udp;

      import java.io.IOException;
      import java.net.DatagramPacket;
      import java.net.DatagramSocket;
      import java.net.InetAddress;

      /**
       * @author kokotchy
       */

      public class UDPServer {

          public static void main(String[] args) {
              UDPServer server = new UDPServer();
          }
         
          public UDPServer() {
              try {
                  DatagramSocket serverSocket = new DatagramSocket(9876);
                  byte[] receiveData = new byte[1024];
                  byte[] sendData = new byte[1024];
                  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();
                      String capitalizedSentence = sentence.toUpperCase();
                      sendData = capitalizedSentence.getBytes();
                      DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
                      serverSocket.send(sendPacket);
                  }
              }
              catch (IOException e) {
                  e.printStackTrace();
              }
          }
      }


      Client udp :
      package udp;

      import java.io.BufferedReader;
      import java.io.IOException;
      import java.io.InputStreamReader;
      import java.net.DatagramPacket;
      import java.net.DatagramSocket;
      import java.net.InetAddress;
      import java.net.SocketException;
      import java.net.UnknownHostException;

      /**
       * @author kokotchy
       */

      public class UDPClient {

          public static void main(String[] args) {
              UDPClient client = new UDPClient();
          }
         
          public UDPClient() {
              try {
                  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();
                  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();
              }
              catch (SocketException e) {
                  e.printStackTrace();
              }
              catch (UnknownHostException e) {
                  e.printStackTrace();
              }
              catch (IOException e) {
                  e.printStackTrace();
              }
          }
      }
      • Partager sur Facebook
      • Partager sur Twitter
        31 octobre 2006 à 12:32:07

        Effectivement c'est plus clair :) .
        Si je demande ça c'est pas pour programmer plus "simplement" mais surtout pour apprendre a comprendre le fonctionnement de la programmation réseaux. De manière a facilité l'apprentissage et de voir comment marche un réseaux, comment marche un serveur... ect

        kokotchy comme je vois que tu es l'auteur de ses sources et donc qu'apparament tu connais la programmation réseaux, si tu as 2-3 liens sympa sur la programmation réseaux ca serait pas mal ^^ .
        Car je lis de la doc en anglais, donc déja ca demande le double du temps rien que pour traduire et en comprendre ce que raconte la doc :lol: .

        Si tu as un cours ressemblant a la facon d'expliqué a la M@théo je suis preneur ! :D

        Merci :)
        • Partager sur Facebook
        • Partager sur Twitter
          31 octobre 2006 à 13:40:11

          Pour la programmation Java, tu peux allé sur:
          le labo sun
          tu auras les cours, et des aides si tu demande.
          • Partager sur Facebook
          • Partager sur Twitter
            31 octobre 2006 à 17:14:04

            la programmation réseau n'est pas plus simple en java qu'en C, le niveau d'abstraction est un peu supérieur en java ...

            Après tu peus utiliser CORBA et autres RPC pour de la programmation réseau encore plus abstraite. CORBA peut être utilisé en C et en java ce qui n'est pas le cas de RMI (java uniquement). Ces mécanisme te permettent de manipuler des objets distant sans avoir a manipuler de sockets ou datagrammes.

            Si tu veux apprendre la programmation réseau, le C te permettra plus que java à scerner les interraction avec ton système d'exploitation : gestion des sockets, exceptions, ports, ...
            • Partager sur Facebook
            • Partager sur Twitter
              1 novembre 2006 à 1:36:52

              garulfoLinux > les codes sources viennent de mon cours de reseau ^^
              Et bon, je doute que mon prof accepete que ceux-ci soit publier sur le net sans son autorisation.
              • Partager sur Facebook
              • Partager sur Twitter
                1 novembre 2006 à 10:12:37

                Citation : kokotchY

                garulfoLinux > les codes sources viennent de mon cours de reseau ^^
                Et bon, je doute que mon prof accepete que ceux-ci soit publier sur le net sans son autorisation.


                Aie :( .
                C'est trop grave j'arrive a m'en sortir. Dans le pire des cas je pense que je peux te faire appel :) .

                (Sinon espérons que KokotchY commence la création d'un tuto sur le réseaux :-° .
                Mais bon, il me semble que j'en demande un peu trop là :lol: ).
                • Partager sur Facebook
                • Partager sur Twitter

                [JAVA] Programmation réseaux ? Plus simple qu'en C ?

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown