CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Socket: reception fichier en double

powercroatia
powercroatia
Niveau 7
19 janvier 2007 à 19:03:33

Bonjour,
J´ai 2 programmes, un coté client qui envoi un fichier texte, et 1 programme serveur qui récéptionne les fichiers texte des clients. Ces clients sont soit sur Linux soit sur Windows.
Avec un client linux, le serveur reçoit bien le fichier comme il faut....

Mais sur un client windows,le fichier recu par le serveur est en double exemplaire. Exemple ,j´envoi "plouf" et je recoit :
plouf

plouf

Pourtant, sur un analyseur de trame, le fichier est bien envoyé une seule fois... Je pense que c´est donc un probleme au niveau du programme de reception.

voici mes 2 programmes:
serveur: http://rafb.net/p/jvRUtI99.html
client: http://rafb.net/p/GMWi5e83.html

Avez vous déja vu un soucis comme celui la svp ?

godrik
godrik
Niveau 30
19 janvier 2007 à 19:52:30

des commentaires:
client ligne 36: utilises getprotobyname plutot qu´une constante
ligne 94 tu voulais ecrire current+=nb_send; et non nb_lu je pense
meme remarque ligne 83. ton appel a send peut ne pas envoyer len octet!!!!!!!!
ta boucle est relativement bizarre dans le client.
tu devrais n´avoir qu´un bout de code d´envoi. Surtout que ce n´est pas parceque tu as moins de BUFFER_SIZE octet a envoyé que tu pourra le faire en un appel...

powercroatia
powercroatia
Niveau 7
19 janvier 2007 à 23:51:41

merci pour ta réponse godrik,
je verrais cela demain, par contre je ne vois toujours pas l´origine du texte ecrit en double dans le fichier recu. En ligne 83:
while ((nb_lu > 0) && (nb_lu <= fin - current))

je ne vois pas pourquoi ce serait nb_send... desolé
Est-ce vraiment ça le soucis ?
merci encore :ok:

kufa
kufa
Niveau 9
20 janvier 2007 à 03:35:02

Ces lignes me semblent louches:

while ( ( nb_recv = recv (cli_sock,get_recep,BUFSIZE, 0)) != 0)
{
fwrite(&get_recep, sizeof(char), strlen(get_recep), fichier_dst);
}

En effet, tu utilises strlen. Pourtant rien ne garanti que ce que tu recois se termine par un zero..
fwrite(&get_recep, sizeof(char), nb_recv, fichier_dst); serait plus juste.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment