Transmission de plusieurs images en TCP [SOCKETS]
Fermé
kosuke.K
Messages postés
489
Date d'inscription
dimanche 13 mars 2011
Statut
Membre
Dernière intervention
29 octobre 2017
-
Modifié le 13 juin 2017 à 22:54
YCN- Messages postés 116 Date d'inscription mercredi 24 juin 2015 Statut Membre Dernière intervention 13 juillet 2017 - 14 juin 2017 à 09:49
YCN- Messages postés 116 Date d'inscription mercredi 24 juin 2015 Statut Membre Dernière intervention 13 juillet 2017 - 14 juin 2017 à 09:49
A voir également:
- Transmission de plusieurs images en TCP [SOCKETS]
- Frédéric cherche à faire le buzz sur les réseaux sociaux. il a ajouté une image de manchots sur une image de plage. retrouvez l'image originale de la plage. que cachent les manchots ? ✓ - Forum Windows
- Tcp optimizer - Télécharger - Optimisation
- Udp vs tcp - Guide
- Transmission mac - Télécharger - Téléchargement & Transfert
- Diviser une photo en plusieurs images - Guide
1 réponse
YCN-
Messages postés
116
Date d'inscription
mercredi 24 juin 2015
Statut
Membre
Dernière intervention
13 juillet 2017
12
Modifié le 14 juin 2017 à 09:52
Modifié le 14 juin 2017 à 09:52
int main(int argc , char *argv[])
{
int socket_desc , new_socket , c, read_size,buffer = 0;
struct sockaddr_in server , client;
char *readin;
//Create socket
socket_desc = socket(AF_INET , SOCK_STREAM , 0);
if (socket_desc == -1)
{
printf("Could not create socket");
}
//Prepare the sockaddr_in structure
server.sin_family = AF_INET;
server.sin_addr.s_addr = INADDR_ANY;
server.sin_port = htons( 8889 );
//Bind
if( bind(socket_desc,(struct sockaddr *)&server , sizeof(server)) < 0){
puts("bind failed");
return 1;
}
puts("bind done");
//Listen
listen(socket_desc , 3);
while(1){
//Accept and incoming connection
puts("Waiting for incoming connections...");
c = sizeof(struct sockaddr_in);
if((new_socket = accept(socket_desc, (struct sockaddr *)&client,(socklen_t*)&c))){
puts("Connection accepted");
}
fflush(stdout);
if (new_socket<0){
perror("Accept Failed");
return 1;
}
send_image(new_socket);
close(socket_desc);
}
fflush(stdout);
return 0;
}
Bon c'est à tester puisque je n'ai pas lu comment fonctionne ta fonction. send_image(); mais normalement l'idée est là.
Ensuite si tu veux faire encore un peu plus beau gosse, cad pouvoir en envoyer en simultané, je te conseil de test avec un fork():
while(1){
//Accept and incoming connection
puts("Waiting for incoming connections...");
c = sizeof(struct sockaddr_in);
if((new_socket = accept(socket_desc, (struct sockaddr *)&client,(socklen_t*)&c))){
puts("Connection accepted");
}
if (fork()==0){
fflush(stdout);
if (new_socket<0){
perror("Accept Failed");
return 1;
}
send_image(new_socket);
close(socket_desc);
exit(0);
}
}
Essaie déjà de faire fonctionner sans le fork et ensuite avec. Pour que tu es plus d'info sur ce qu'est un fork():
https://openclassrooms.com/fr/courses/1513891-la-programmation-systeme-en-c-sous-unix/1514339-les-processus#/id/r-1514167