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

Elentir
Elentir
Niveau 3
01 août 2005 à 17:51:30

bonjour a tous

j´ai fait deux programme en C: un client et un serveur.
j´arrive a envoyer des fichiers txt avec la fonction send(), mais je ne peut pas envoyer autre chose ( image par exemple).

le probleme viens du buffer car il est de type void(pour une image) alors que la fonction send n´envoi que des char.

je ne sais pas comment faire.
si quelqu´un peut m´aider
merçi d´avance

JeanYvesYves
JeanYvesYves
Niveau 10
01 août 2005 à 18:05:26

pas de soucis, le pointeur est un char* car ça envoie un flux d´octets...
Il te suffit de mettre ton image dans un buffer, et de faire un send sur ce buffer, avec la taille de l´image...
Je ne vois pas ou est le probleme :)
Comment charges tu ton image en mémoire ?

Elentir
Elentir
Niveau 3
01 août 2005 à 21:03:42

je fait un programme dans ce genre

int main()
{

FILE *fich
char *buffer;

fich=fopen("mon_image.jpg","r");
fread(buffer,sizeof(buffer),1,fich);
fclose(fich);

WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &);

SOCKET sock;
SOCKET csock;
SOCKADDR_IN sin;
SOCKADDR_IN csin;

sock = socket(AF_INET, SOCK_STREAM, 0);

sin.sin_addr.s_addr = INADDR_ANY;
sin.sin_family = AF_INET;
sin.sin_port = htons(4444);

bind(sock, ( SOCKADDR *)&, sizeof(sin));
listen(sock, 0);

while(1)
{
int sinsize = sizeof(csin);

if((csock = accept(sock,(SOCKADDR*&,&)) ! = INVALID_SOCKET)
{
send(sock,buffer,sizeof(buffer),0);

}
}

}

Bigloo
Bigloo
Niveau 10
02 août 2005 à 09:19:44

Pas envie de dire une connerie, mais est-ce que ça vient pas de l´ouverture et de l´écriture, où il faudrait spécifier le mode ´b´ ?

Elentir
Elentir
Niveau 3
02 août 2005 à 15:06:47

je viens d´essayer mais ca ne change rien. merçi quand même.

apparement le probleme doit etre dans la lecture parceque,même quand j´ecrit ceci:

void *buf;
FILE *fich;

fich=fopen("mon_image.jpg","rb");
fread(buf,sizeof(buf),1,fich);
fclose(fich);

fich=fopen("mon_image2.jpg","wb");
fwrite(buf,sizeof(buf),1,fich);
fclose(fich);

donc en gros je recopi un fichier,et bien le fichier créé n´a pas la meme taille que l´original et n´est pas lisible.

avant je ne travaillais que sur des fichiers txt,donc je comprend pas exactement la difference puisque aprés tout ce ne sont que des suite d´octecs.

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