Accueil > > > SERVEUR/CLIENT LINUX
SERVEUR/CLIENT LINUX
Information sur la source
Description
un petit chat client serveur sous linux utilisant les sockets; quelque bug encore existant mais permet de comprendre le fonctionnement des sockets. une version ameliorée sera bientôt proposé.
Source
- /*****************************************************************************
- * messenger_server.c serveur messenger pour reseau ehernet
- * auteur: LEBANSAIS CHRISTOPHE
- * Date 9/11/08
- * version 0.1
- *
- ******************************************************************************/
- //penser a ajouter le service dans le fichier etc/service non du service lebmessenger port 2200/tcp
-
- #include <stdio.h>
- #include <stdlib.h>
- #include <errno.h>
-
- #include <sys/types.h>
-
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <netdb.h>
- #include <arpa/inet.h>
- #include <unistd.h>
- #include <string.h>
-
-
- #include "cli_ser.h"
-
- //#define TEST
-
- extern int errno;
-
- int initialiserServeur();
-
-
- int main(int argc, char *argv[], char *envp[])
- {
- int idSocClient;
- int erreur;
- int i;
- char c, Buffer[2000];
-
-
- /* initialisation connexion */
- /* ===================================*/
- idSocClient = initialiserServeur();
-
- puts("retour initialiser connexion");
- printf("numero socket %d\n",idSocClient);
-
- #ifdef TEST
- puts("entrer:");
- scanf("%c",&c);
- #endif
-
- /* lecture de la demande (chaine ascii) */
- /* ====================================*/
- do
- {
- i = read(idSocClient,Buffer,sizeof(Buffer)-1);
- if(i == ERROR)
- {
- puts("Erreur lors de la lecture de la socket\n");
- close(idSocClient);
- exit(6);
- }
- Buffer[i] = '\0';
- printf("%s\n",Buffer); //message recus
-
-
- #ifdef TEST
- puts("entrer:");
- scanf("%c",&c);
- #endif
-
-
- /* emission reponse */
- /* =================*/
- gets(Buffer);
- //strcpy(Buffer,"message recu par le serveur \n");
- i = write(idSocClient,Buffer,strlen(Buffer));
- if(i == ERROR)
- {
- puts("Erreur lors de l'ecritur dans la socket(reponse au client)\n");
- close(idSocClient);
- exit(6);
- }
- }while(strcmp(Buffer,"fin") != 0);
- #ifdef TEST
- puts("entrer:");
- scanf("%c",&c);
- #endif
-
- /* fin d'utilisation de la socket */
- /* ============================== */
- shutdown(idSocClient,2);
- close(idSocClient);
-
- #ifdef TEST
- puts("entrer:");
- scanf("%c",&c);
- #endif
-
-
- puts("SORTIE NORMALE apres close \n");
- exit(0);
-
- }
-
-
- /******************************************************************************
- Fonction : initialiserServeur
- attente et gestion de la connexion avec le client (cote serveur)
- entree: numero du port du serveur
- Valeur retournee : idSocComClient, identificateur de la socket locale connectee
-
- ******************************************************************************/
-
- int initialiserServeur()
- {
- struct sockaddr_in sockaddr_connexion, sockaddr_connecte;
- int erreur,
- longueurAddr,
- idSocComClient,
- idSocConnect,
- port;
- char valOpt;
- char c;
- char nom[50];
- struct servent *portserv;
-
-
- puts("creation socket\n");
-
- /* Creation de la socket */
- /* ===================== */
-
- idSocConnect = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
- if(idSocConnect == ERROR)
- {
- puts("Erreur de creation de la socket\n");
- exit (1);
- }
-
- #ifdef TEST
- puts("entrer:");
- scanf("%c",&c);
- #endif
-
- valOpt = 1;
- if(setsockopt(idSocConnect,SOL_SOCKET,SO_REUSEADDR,&valOpt,sizeof(int)) == ERROR)
- {
- puts("Erreur lors de la modification des parametres de la socket\n");
- close(idSocConnect);
- exit (2);
- }
-
- puts("setsockopt realise\n");
-
- #ifdef TEST
- puts("entrer:");
- scanf("%c",&c);
- #endif
- printf("init parametre\n");
-
- /* initialisation des parametres de la connexion, preparation de la socket */
- /* ======================================================================= */
-
- sockaddr_connecte.sin_family = AF_INET;
- portserv = getservbyname(SERVICENAME,PROTOCOLE);
- printf("recup %s\n",portserv);
- port = portserv->s_port;
- sockaddr_connecte.sin_port = port;
- sockaddr_connecte.sin_addr.s_addr = INADDR_ANY;
- if(bind(idSocConnect,(struct sockaddr *) &sockaddr_connecte,sizeof(struct sockaddr_in)) == ERROR)
- {
- puts("Erreur lors du nomage de la socket de connexion\n");
- close(idSocConnect);
- exit (3);
- }
- if(listen(idSocConnect,NB_PENDANTE) == ERROR)
- {
- puts("ERREUR du placement en mode listen de la socket\n");
- close(idSocConnect);
- exit (4);
- }
-
- #ifdef TEST
- puts("entrer:");
- scanf("%c",&c);
- #endif
-
-
- /* Attente et gestion de connexion */
- /* ================================ */
- longueurAddr = sizeof(struct sockaddr);
- idSocComClient = accept(idSocConnect,(struct sockaddr *) &sockaddr_connexion,&longueurAddr);
- if(idSocComClient == ERROR)
- {
- puts("Erreur lors de la creation de la socket de communication\n");
- close(idSocConnect);
- exit (5);
- }
-
-
- #ifdef TEST
- puts("entrer:");
- scanf("%c",&c);
- #endif
-
- if(gethostname(nom,50) == ERROR)
- {
- printf("Erreur lors de la lecture du nom de la machine\n");
- }
- else
- {
- printf("Nom : %s\n",nom);
- }
-
-
- #ifdef TEST
- puts("entrer:");
- scanf("%c",&c);
- #endif
-
- /* Fermeture de la socket de connexion devenu inutile et retour */
- /* ============================================================ */
-
- close(idSocConnect);
- return(idSocComClient);
- }
-
-
- /*****************************************************************************
- * messenger_client.c client messenger pour reseau ehernet
- * auteur: LEBANSAIS CHRISTOPHE
- * Date 9/11/08
- * version 0.1
- *
- ******************************************************************************/
- //penser a ajouter le service dans le fichier etc/service non du service lebmessenger port 2200/tcp
-
-
- #include <stdio.h>
- #include <stdlib.h>
- #include <errno.h>
-
- #include <sys/types.h>
-
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <netdb.h>
- #include <arpa/inet.h>
- #include <unistd.h>
- #include <string.h>
-
-
- #include "cli_ser.h"
-
- //#define TEST
-
- extern int errno;
-
- int initialiserClient();
-
- int main(int argc, char *argv[], char *envp[])
- {
- int idSocket,
- nbOctetsLus,
- erreur,
- i;
- char Buffer[2000];
- char reponse[2000];
- char c;
-
- #ifdef TEST
- puts("debut tpcli entrer:");
- scanf("%c",&c);
- if (c=='f') exit(0);
- #endif
-
-
- /* initialisation de la connexion */
- /* =============================== */
- idSocket = initialiserClient();
-
-
- puts("retour initialiser connexion\n");
-
- #ifdef TEST
- puts("entrer:");
- scanf("%c",&c);
- #endif
-
- /* emission d'une demande au serveur (chaine ascii) */
- /* ================================================ */
- do
- {
- gets(Buffer);
- //strcpy(Buffer,"Souhaitez vous communiquer avec moi ?\n");
- i = write(idSocket,Buffer,strlen(Buffer));
- if(i == ERROR)
- {
- puts("Erreur lors de la lecture de la socket\n");
- close(idSocket);
- exit(6);
- }
-
- #ifdef TEST
- puts("entrer:");
- scanf("%c",&c);
- #endif
-
- /* lecture de la reponse */
- /* ===================== */
- i = read(idSocket,reponse,sizeof(reponse));
- if(i == ERROR)
- {
- puts("Erreur lors de la lecture de la socket\n");
- close(idSocket);
- exit(6);
- }
- reponse[i] = '\0';
- printf("%s\n",reponse); //message recus
-
- }while(strcmp(Buffer,"fin") != 0);
-
- /* fin d'utilisation infos reseau de resolution des noms */
- endhostent();
-
-
- puts("tpcli: SORTIE NORMALE \n");
- exit(0);
-
- }
-
-
- /******************************************************************************
- Fonction : initialiserClient
-
- prepare et realise une connexion avec le serveur
- entree: numero de port
-
- ******************************************************************************/
-
- int initialiserClient()
- {
- int idSocket,
- erreur,
- port;
- struct sockaddr_in socCom, socserv;
- char c;
- struct hostent *adrserv;
- long addrserv;
- struct servent *portserv;
-
- /* creation de la socket */
- /* ===================== */
- idSocket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
- if(idSocket == ERROR)
- {
- puts("Erreur lors de la creation de la socket\n");
- exit (1);
- }
-
-
- #ifdef TEST
- puts("entrer:");
- scanf("%c",&c);
- #endif
-
- /* preparation de la connexion et connexion */
- /* ======================================== */
- //socCom.sin_family = AF_INET;
- //socCom.sin_port = 0; En prevision d'un bind
- //socCom.sin_addr.s_addr = 0;
-
- adrserv = gethostbyname(SERVEURNAME);
- addrserv = adrserv->h_addr;
- addrserv = *((long*)(adrserv->h_addr));
- portserv = getservbyname(SERVICENAME,PROTOCOLE);
- port = portserv->s_port; //11/12/06
-
- socserv.sin_family = AF_INET;
- socserv.sin_port = port;
- socserv.sin_addr.s_addr = addrserv;
-
- //pas de bind le connect le fait automatiquement
- if(connect(idSocket,(struct sockaddr *) &socserv, sizeof(struct sockaddr)) == ERROR)
- {
- puts("ERREUR : Impossible de faire la connexion\n");
- close(idSocket);
- exit(2);
- }
- //puts("Connexion refusee par le serveur \n");
- //exit(0);
-
-
- puts("connexion realisee\n");
-
- #ifdef TEST
- puts("entrer:");
- scanf("%c",&c);
- #endif
-
- return idSocket;
-
- }
-
-
- /*parametre du client et du serveur lebansaismsn*/
- /* cli_ser.h */
- #ifndef CLI_SER_H
- #define CLI_SER_H
-
- #define FAUX 0
- #define VRAI 1
- //#define UPORT 2700
- #define NB_PENDANTE 3
- #define ADDR_QUELCONQUE 0
- #define ADDR_AUTO 0
- #define ERROR -1
- #define PROTOCOLE "tcp"
- #define SERVICENAME "messenger"
- #define SERVEURNAME "localhost"
-
- #endif
-
-
-
/*****************************************************************************
* messenger_server.c serveur messenger pour reseau ehernet
* auteur: LEBANSAIS CHRISTOPHE
* Date 9/11/08
* version 0.1
*
******************************************************************************/
//penser a ajouter le service dans le fichier etc/service non du service lebmessenger port 2200/tcp
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>
#include "cli_ser.h"
//#define TEST
extern int errno;
int initialiserServeur();
int main(int argc, char *argv[], char *envp[])
{
int idSocClient;
int erreur;
int i;
char c, Buffer[2000];
/* initialisation connexion */
/* ===================================*/
idSocClient = initialiserServeur();
puts("retour initialiser connexion");
printf("numero socket %d\n",idSocClient);
#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif
/* lecture de la demande (chaine ascii) */
/* ====================================*/
do
{
i = read(idSocClient,Buffer,sizeof(Buffer)-1);
if(i == ERROR)
{
puts("Erreur lors de la lecture de la socket\n");
close(idSocClient);
exit(6);
}
Buffer[i] = '\0';
printf("%s\n",Buffer); //message recus
#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif
/* emission reponse */
/* =================*/
gets(Buffer);
//strcpy(Buffer,"message recu par le serveur \n");
i = write(idSocClient,Buffer,strlen(Buffer));
if(i == ERROR)
{
puts("Erreur lors de l'ecritur dans la socket(reponse au client)\n");
close(idSocClient);
exit(6);
}
}while(strcmp(Buffer,"fin") != 0);
#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif
/* fin d'utilisation de la socket */
/* ============================== */
shutdown(idSocClient,2);
close(idSocClient);
#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif
puts("SORTIE NORMALE apres close \n");
exit(0);
}
/******************************************************************************
Fonction : initialiserServeur
attente et gestion de la connexion avec le client (cote serveur)
entree: numero du port du serveur
Valeur retournee : idSocComClient, identificateur de la socket locale connectee
******************************************************************************/
int initialiserServeur()
{
struct sockaddr_in sockaddr_connexion, sockaddr_connecte;
int erreur,
longueurAddr,
idSocComClient,
idSocConnect,
port;
char valOpt;
char c;
char nom[50];
struct servent *portserv;
puts("creation socket\n");
/* Creation de la socket */
/* ===================== */
idSocConnect = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(idSocConnect == ERROR)
{
puts("Erreur de creation de la socket\n");
exit (1);
}
#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif
valOpt = 1;
if(setsockopt(idSocConnect,SOL_SOCKET,SO_REUSEADDR,&valOpt,sizeof(int)) == ERROR)
{
puts("Erreur lors de la modification des parametres de la socket\n");
close(idSocConnect);
exit (2);
}
puts("setsockopt realise\n");
#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif
printf("init parametre\n");
/* initialisation des parametres de la connexion, preparation de la socket */
/* ======================================================================= */
sockaddr_connecte.sin_family = AF_INET;
portserv = getservbyname(SERVICENAME,PROTOCOLE);
printf("recup %s\n",portserv);
port = portserv->s_port;
sockaddr_connecte.sin_port = port;
sockaddr_connecte.sin_addr.s_addr = INADDR_ANY;
if(bind(idSocConnect,(struct sockaddr *) &sockaddr_connecte,sizeof(struct sockaddr_in)) == ERROR)
{
puts("Erreur lors du nomage de la socket de connexion\n");
close(idSocConnect);
exit (3);
}
if(listen(idSocConnect,NB_PENDANTE) == ERROR)
{
puts("ERREUR du placement en mode listen de la socket\n");
close(idSocConnect);
exit (4);
}
#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif
/* Attente et gestion de connexion */
/* ================================ */
longueurAddr = sizeof(struct sockaddr);
idSocComClient = accept(idSocConnect,(struct sockaddr *) &sockaddr_connexion,&longueurAddr);
if(idSocComClient == ERROR)
{
puts("Erreur lors de la creation de la socket de communication\n");
close(idSocConnect);
exit (5);
}
#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif
if(gethostname(nom,50) == ERROR)
{
printf("Erreur lors de la lecture du nom de la machine\n");
}
else
{
printf("Nom : %s\n",nom);
}
#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif
/* Fermeture de la socket de connexion devenu inutile et retour */
/* ============================================================ */
close(idSocConnect);
return(idSocComClient);
}
/*****************************************************************************
* messenger_client.c client messenger pour reseau ehernet
* auteur: LEBANSAIS CHRISTOPHE
* Date 9/11/08
* version 0.1
*
******************************************************************************/
//penser a ajouter le service dans le fichier etc/service non du service lebmessenger port 2200/tcp
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>
#include "cli_ser.h"
//#define TEST
extern int errno;
int initialiserClient();
int main(int argc, char *argv[], char *envp[])
{
int idSocket,
nbOctetsLus,
erreur,
i;
char Buffer[2000];
char reponse[2000];
char c;
#ifdef TEST
puts("debut tpcli entrer:");
scanf("%c",&c);
if (c=='f') exit(0);
#endif
/* initialisation de la connexion */
/* =============================== */
idSocket = initialiserClient();
puts("retour initialiser connexion\n");
#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif
/* emission d'une demande au serveur (chaine ascii) */
/* ================================================ */
do
{
gets(Buffer);
//strcpy(Buffer,"Souhaitez vous communiquer avec moi ?\n");
i = write(idSocket,Buffer,strlen(Buffer));
if(i == ERROR)
{
puts("Erreur lors de la lecture de la socket\n");
close(idSocket);
exit(6);
}
#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif
/* lecture de la reponse */
/* ===================== */
i = read(idSocket,reponse,sizeof(reponse));
if(i == ERROR)
{
puts("Erreur lors de la lecture de la socket\n");
close(idSocket);
exit(6);
}
reponse[i] = '\0';
printf("%s\n",reponse); //message recus
}while(strcmp(Buffer,"fin") != 0);
/* fin d'utilisation infos reseau de resolution des noms */
endhostent();
puts("tpcli: SORTIE NORMALE \n");
exit(0);
}
/******************************************************************************
Fonction : initialiserClient
prepare et realise une connexion avec le serveur
entree: numero de port
******************************************************************************/
int initialiserClient()
{
int idSocket,
erreur,
port;
struct sockaddr_in socCom, socserv;
char c;
struct hostent *adrserv;
long addrserv;
struct servent *portserv;
/* creation de la socket */
/* ===================== */
idSocket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(idSocket == ERROR)
{
puts("Erreur lors de la creation de la socket\n");
exit (1);
}
#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif
/* preparation de la connexion et connexion */
/* ======================================== */
//socCom.sin_family = AF_INET;
//socCom.sin_port = 0; En prevision d'un bind
//socCom.sin_addr.s_addr = 0;
adrserv = gethostbyname(SERVEURNAME);
addrserv = adrserv->h_addr;
addrserv = *((long*)(adrserv->h_addr));
portserv = getservbyname(SERVICENAME,PROTOCOLE);
port = portserv->s_port; //11/12/06
socserv.sin_family = AF_INET;
socserv.sin_port = port;
socserv.sin_addr.s_addr = addrserv;
//pas de bind le connect le fait automatiquement
if(connect(idSocket,(struct sockaddr *) &socserv, sizeof(struct sockaddr)) == ERROR)
{
puts("ERREUR : Impossible de faire la connexion\n");
close(idSocket);
exit(2);
}
//puts("Connexion refusee par le serveur \n");
//exit(0);
puts("connexion realisee\n");
#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif
return idSocket;
}
/*parametre du client et du serveur lebansaismsn*/
/* cli_ser.h */
#ifndef CLI_SER_H
#define CLI_SER_H
#define FAUX 0
#define VRAI 1
//#define UPORT 2700
#define NB_PENDANTE 3
#define ADDR_QUELCONQUE 0
#define ADDR_AUTO 0
#define ERROR -1
#define PROTOCOLE "tcp"
#define SERVICENAME "messenger"
#define SERVEURNAME "localhost"
#endif
Conclusion
réaliser en 3 fichiers il faut penser a ajouté le service dans le fichier /etc/services avec cette syntaxe :
messenger 2200/tcp
n'esiter pas a me laisser vos commentaires bonne prog
Historique
- 09 novembre 2008 17:43:35 :
- ajout du fichier zip
- 09 novembre 2008 17:44:05 :
- ajout du fichier zip
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
programmation socket sous linux [ par blazman34 ]
Bonjour à tous !!Voici mon probleme :Je suis en train de programmer une application client serveur sous linux, tout a bien marcher juska présent juska
Soket sous LINUX [ par diablo31170 ]
Bonjour à tous le monde, comme le nom l'indique, cela va parler de soscket sous linux (en C++). Il aut savoir que je travaille en mode connect
Identifier un Client via Socket IP - C++ [ par Jeff_Trek ]
Bonjour,J'utilise un Serveur (Socket IP), J'aimerais identifier les clients qui se connecte et déconnecte.Je connais les adresses IP des clients.Si Cl
Socket et linux : serveur smtp [ par LuckyNut ]
Bonjour,J'ai développé un petit serveur smtp sous linux et j'ai un pb que je n'arrive pas à résoudre.Il marche nickel si je le fais écouter sur le por
transfert d'imge d'un serveur vers un client en C++(linux) [ par doberman7578 ]
bonjour,n'aarivant pas a effectuer le transfert d'une image d'un serveur a un client en c++ , quelqu'un pouurait il maider a effectuer celamercia++
Chat client serveur C [ par lenneth666 ]
Bonjour comme projet je dois faire un chat en C. Mais je ne sais pas du tout par ou commecer. et la méthode a suivre.
problème serveur TCP en C [ par lenneth666 ]
Bonjour j'ai essayé de faire un client server TCP en C mais mon serveur bloque a l'instruction suivante : client_socket = accept( ma_socket,(s
socket client (php) vers serveur (c++) [ par suleyman ]
bonjour, je suis debutant, je nai jamais programmer une socket et jaimerai avoir le code source ainsi que les commentaires dune socket client et serve
client windows , serveur linux mysql [ par Guilhou ]
Bonjour à tous, j'aurais voulu savoir s'il était possible de faire communiquer une serveur linux avec des clients qui tournent sous windows.
Client/serveur Socket transfert de plusieurs fichiers [ par atifelkhachine ]
Bonjour.quelqu'un peut me donner un pti guide pour realiser une application C/S de transfert de plusieurs fichiers binaires en utilsant les sockets .
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|