cs_doberman7578
Messages postés46Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention 1 mars 2006
-
8 févr. 2006 à 17:23
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 2009
-
11 févr. 2006 à 08:16
bonjour,
j'ai effectué un serveur client qui permet de transferer des image jpg,
dans mon cas je doit saisir le nom de l'image ( par exemple :
image_voiture ) pour que le client la recoive, mais j'aimerai recevoir
cette image automatiquement, c'est a dir que qquand le client ce
connecte au serveur, je voudrai recevoir cette image,donc si quelqu'un
pourrait m'aider ca serait sympa de votre part, voici mon code :
/*SERVEUR TRANSFERT IMAGE */
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <signal.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <signal.h>
#include
int connexion;
/* Fonction activée par la touche Ctrl c , signal SIGINT*/
void fin()
{close(connexion);
printf("fin du processus serveur!\n");
exit(0);
}
int main()
{
int taille,lecture,N;
struct sockaddr_in sock;
struct sockaddr_in sockclient ;
char tampon[100], NomFich[100];
int connexion_service;
FILE *fich ;
signal(SIGINT,fin) ;
/* descripteur de socket */
if ( (connexion = socket(AF_INET,SOCK_STREAM,0) )== -1)
{ perror("erreur socket");
exit(1);
}
sock.sin_family = AF_INET;
sock.sin_addr.s_addr = INADDR_ANY;
sock.sin_port = htons(5000);
if ( bind(connexion,(struct sockaddr *)&sock, sizeof sock ) == -1)
{ perror("erreur bind");
exit(1);
}
/* accepte les demandes de connexion */
listen(connexion,5);
signal(SIGINT,fin);
while(1)
{
taille = sizeof ( sockclient );
puts("attente de connexion");
if ((connexion_service = accept(connexion,(struct sockaddr *)&sockclient,(socklen_t *)&taille) )==-1)
{ perror("erreur accept");
exit(1);
}
puts("Serveur : connexion etablie");
if (fork()==0)
{ /* programme fils */
lecture = read(connexion_service,NomFich,100);
if(lecture == 0) /* retourne 0 si le client exécute close */
cs_doberman7578
Messages postés46Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention 1 mars 2006 8 févr. 2006 à 17:44
je voudrai savoir si c'est possible de se connecter a un serveur sans entrer son ip, par exeple si il a 2 serveur sur le reseau le client se connecte au 2
wxccxw
Messages postés755Date d'inscriptionsamedi 15 mai 2004StatutMembreDernière intervention30 janvier 2011 8 févr. 2006 à 21:15
je sais pas il y a plein de code :) pour balancer sur un reseau
c'est toujours les meme IP tu te connect a
192,168,0,2 pour le premier ,3 pour le 2e et ,pour le 3e etc....
cs_doberman7578
Messages postés46Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention 1 mars 2006 8 févr. 2006 à 21:18
oue meme dans mon cas je ne connai pas ladresse du serveur aukelle je me connecter, je voudrai faire en sort que des ke le client cherche un serveur, le serveur lui envoi son ip et ensuite il peut se conecter, mis je ne sais pas comment faire
cs_doberman7578
Messages postés46Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention 1 mars 2006 8 févr. 2006 à 22:02
je voudrai : Envoyer un paquet UDP en BroadCast
pour demander aux serveurs de se signaler par retour du courrier, puis
se connecter aux serveurs qui auront répondu. Meme je ne sais pas le
code kil fau effectué et a kel nivo
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 10 févr. 2006 à 19:47
Il suffit de préciser la bonne IP pour le client qui cherche à se
connecter.Tu crées un socket en UDP, tu lui fais balancer sur le réseau
comme quoi il veut se connecter (avec une adresse IP broadcast) et une
fois que t'as la réponse, tu récupères l'ip du(des) serveur(s) qui
t'ont répondu, et tu t'y connectes.