Transmission de plusieurs images en TCP [SOCKETS]
Fermé
kosuke.K
Messages postés
496
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]
- Udp vs tcp - Guide
- Tcp optimizer - Télécharger - Optimisation
- Des images - Guide
- Sandra a décidé de mieux contrôler son image et sa présence sur différents réseaux sociaux. qu’est-il possible de faire sur ces réseaux ? - Forum Facebook
- Une image subliminale a été incrustée dans la vidéo à télécharger. quelle est la largeur de cette image ? - Forum Format et connectique vidéo
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