All pastes #991503 Raw Edit

Miscellany

public c v1 · immutable
#991503 ·published 2008-04-21 02:15 UTC
rendered paste body
#include <sys/types.h>#include <stdlib.h>#include <unistd.h>#include <errno.h>#include <stdio.h>#include <string.h>#include <netinet/in.h>#include <netdb.h>#include <sys/socket.h>#include <arpa/inet.h>/************************************** * Definitions des constantes *************************************/#define LGMAXINFO 1024#define FALSE 0#define TRUE !0/************************************** * Definitions des types *************************************/struct adresse {	int port;	char domaine[500];};/************************************** * Definitions des variables *************************************/int descServ=-1;int descClt=-1;char msg[LGMAXINFO];char maMachine[LGMAXINFO];/************************************** * Definitions des fonctions *************************************/char * lire(int descSock);int traiter_message(char * msg);void ecrire(int descSock, char * msg);int connexion(struct adresse *address);void ecrireMessage(char* chan, char* message);void chgNick(char* nick);void mp(char* message);int main(int argc, char * argv[]){	struct adresse *adr;	adr=malloc(sizeof(adr));	printf("Serveur %s sur le port %d\n", argv[1], atoi(argv[2]));	adr->port=atoi(argv[2]);	memcpy((void *)adr->domaine, (const void *)argv[1], strlen(argv[1]));	descServ=connexion(adr);	while(traiter_message(lire(descServ)) != FALSE){	}	free(adr);	close(descServ);	return(1);}/************************************* * Implementation des fonctions ************************************/char * lire(int descSock){	if(descSock == -1){		perror("Probleme de lecture : erreur avec le descripteur");		exit(0);	}	int err;	memset(msg, 0, LGMAXINFO);	err=read(descSock, msg, LGMAXINFO);	if(err<=0){		perror("Probleme de lecture");		exit(1);	}	return msg;}int traiter_message(char * msg){	return TRUE;}void ecrire(int descSock, char * msg){	if(descSock == -1){		perror("Probleme d'ecriture : erreur avec le descripteur");		exit(0);	}	int err;	err=write(descSock, msg, strlen(msg));	if(err<=0){		printf("Erreur d'envois du message : %s", msg);		perror("Probleme d'ecriture");		exit(1);	}}int connexion(struct adresse * address){	int sock, err;	struct sockaddr_in sin;	struct in_addr *adr;	struct hostent *host;		sin.sin_family = AF_INET;	sin.sin_port=htons((int)address->port);		//host=gethostbyname(address->domaine);	printf("test\n");	printf("le serveur est : %s\n", address->domaine);	host=gethostbyname(address->domaine);	printf("test\n");	sin.sin_addr=*(struct in_addr*)host->h_addr;		sock = socket (AF_INET, SOCK_DGRAM, 0);	if(sock==-1){		printf("Erreur Socket\n");		exit(0);	}	err=connect(sock, (struct sockaddr *)&sin, sizeof(struct sockaddr));	//free(adr);	printf("test2\n");	if(err == -1){		printf("Connection error\n");	}	printf("%s\n", lire(sock));	printf("%s\n", lire(sock));	printf("%s\n", lire(sock));	printf("test2\n");	return sock;}