IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau C Discussion :

Questions sur les socket


Sujet :

Réseau C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 73
    Par défaut Questions sur les socket
    Bonjour, j'ai plusieurs questions sur les socket :
    Deja comment on sait le port de son ordi ? (mon ordi= le serveur)
    le client peut envoyer par socket au serveur ? : une variable repertoire=opendir("C:\\........................"); et que le serveur grace a cette variable affiche le contenue du repertoir du client ?
    Peut on envoyer un fichier de client a serveur avec une variable fichier=fopen("fichier.txt"); ??

    Voila a peu pres toutes mes questions

  2. #2
    zul
    zul est déconnecté
    Membre chevronné Avatar de zul
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 498
    Par défaut
    Deja comment on sait le port de son ordi ? (mon ordi= le serveur)
    Ca commence mal . Un ordinateur n'a pas de port ( pour une socket ). Un port c'est quelquechose lié à un protocole de niveau 4 ( tcp ou udp ) et qui permet de définir une connection

    le client peut envoyer par socket au serveur ? : une variable repertoire=opendir("C:\\........................"); et que le serveur grace a cette variable affiche le contenue du repertoir du client ?
    Oui et non. Directement non, tu ne peux faire transiter par des socket que des données, pas de "variables". Ensuite il existe des solutions de plus haut niveau qui permettent de faire ce genre de chose comme corba. Basiquement, ce que tu peux faire, c'est envoyer via un socket la liste des fichiers / répertoires

    Peut on envoyer un fichier de client a serveur avec une variable fichier=fopen("fichier.txt"); ??
    Comme si dessus directemetn ce n'est pas possible. Mais tu peux envoyer el contenu de ce fichier sur le réseau.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 73
    Par défaut
    Donc je dois mettre tout dans une variable char contenu[] qui contiendra mes infos ?
    Et sinon, c'est quoi le protocole de connection ?
    j'indique quoi comme numéro ?

  4. #4
    Membre éclairé Avatar de Biosox
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 298
    Par défaut
    Hello.

    j'ai ecrit mon premier petit client-server récemment.
    Je te conseilles de suivre l'un ou l'autre de ces 2 tutoriaux, ils m'ont beaucoup aidé:

    http://emmanuel-delahaye.developpez.com/reseaux.htm
    http://c.developpez.com/WalrusSock/

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 73
    Par défaut
    Ok merci.
    Je peux donc choisir un port a 2000 pour mon client ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 73
    Par défaut
    Voila je me suis fait un client identique a celui de la FAQ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <winsock2.h>
    #pragma comment(lib, "ws2_32.lib")
     
     
    int main(void)
    {
    WSADATA WSAdata;
    WSAStartup(MAKEWORD(2,0), &WSAdata);
    SOCKET sock;
    SOCKADDR_IN sin;
    char *buffer;
    sin.sin_addr.s_addr = inet_addr("ip");
    sin.sin_family = AF_INET;
    sin.sin_port = htons(6667);
    sock=socket(AF_INET, SOCK_STREAM, 0);
    connect(sock, (SOCKADDR *)&sin, sizeof(sin));
    recv(sock, buffer, sizeof(buffer), 0);
    closesocket(sock);
    WSACleanup();
    system("PAUSE");
    return 0;
    }

    et un serveur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <winsock2.h>
    #pragma comment(lib, "ws2_32.lib")
     
    int main(void)
    {
    WSADATA WSAdata;
    SOCKET sock;
    SOCKET csock;
    sock=socket(AF_INET, SOCK_STREAM, 0);
    SOCKADDR_IN sin;
    SOCKADDR_IN csin;
    sin.sin_addr.s_addr = INADDR_ANY;
    sin.sin_family = AF_INET;
    sin.sin_port = htons(23);
    bind(sock, (SOCKADDR *)&sin, sizeof(sin));
    listen(sock, 0);
    while(1)
    {
    int size=sizeof(csin);
    csock=accept(sock, (SOCKADDR *)&sin, &size);
    if(csock != INVALID_SOCKET) {
    send(csock, "Hello world\r\n", 14, 0);
    }
    }
    system("PAUSE");
    return 0;
    }
    probleme : plein de linker error !
    Pourquoi ?

  7. #7
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par lapras123
    Bonjour, j'ai plusieurs questions sur les socket :
    Deja comment on sait le port de son ordi ? (mon ordi= le serveur)
    Ben le port c'est toi qui le choisit (entre 1025 et 65536)

    le client peut envoyer par socket au serveur ? : une variable repertoire=opendir("C:\\........................"); et que le serveur grace a cette variable affiche le contenue du repertoir du client ?
    Comment veut tu envoyer une variable via une socket. Reflechi un petit peu a ce que tu viens de demander. Tu peux faire comme cela si tu veux.

    Le client envoi le nom du repertoire au serveur, le serveur liste les fichiers, les envoi au client et le client les affiche.

    Peut on envoyer un fichier de client a serveur avec une variable fichier=fopen("fichier.txt"); ??

    Voila a peu pres toutes mes questions
    Exprime toi clairement s'il te plait.

    Tu veux envoyer un fichier?
    Pour envoyer un fichier, le client ouvre le fichier en lecture, il envoi le nom du fichier au serveur, le serveur crée un fichier et l'ouvre en ecriture. Le client envoi des blocs de 4096 octets au serveur (le client lit via fread), le serveur les ecrit dans son fichier via fwrite.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Questions sur les sockets (fonctions synchrones)
    Par azerty25 dans le forum Général Dotnet
    Réponses: 7
    Dernier message: 29/06/2007, 00h57
  2. [debutant][Client-serveur] Question sur les sockets
    Par skwi6 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 06/11/2006, 15h04
  3. Question sur les socket AF_UNIX
    Par Mr_Chut dans le forum Réseau
    Réponses: 3
    Dernier message: 10/06/2006, 11h42
  4. Encore une petite question sur les sockets...
    Par damien99 dans le forum MFC
    Réponses: 4
    Dernier message: 15/02/2006, 14h22
  5. [WinSock] Question sur les sockets (accept)
    Par Grey dans le forum MFC
    Réponses: 3
    Dernier message: 09/01/2006, 11h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo