1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
|
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <string.h>
#include <sqlca.h>
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR username[20];
VARCHAR resultat[50];
VARCHAR table1 [30];
VARCHAR listeny [100];
int status;
int msg_length;
char *buf;
char resul[500];
char retval[200];
EXEC SQL END DECLARE SECTION;
int sockfd, newsockfd;
main()
{
int rcv,snd;
char tampon[20];
char * result;
char * req(char[20]);
char * tab_cli=NULL;
void connex (void);
strcpy(username.arr ,"***********************");
username.len=strlen(username.arr);
EXEC SQL CONNECT :username; printf("Connexion Maqsycom\n");
char welcome[25]="Bienvenue sur ***********";
connex();
close(sockfd);
for(;;)
{
snd= send(newsockfd,welcome,sizeof(welcome),0);
if(snd>0)
{
printf("donnes envoyees \n");
}
else printf ("erreur envoi de donnees \n");
sleep(10);
rcv= recv(newsockfd,tampon,7,0);
if(rcv>0)
{
printf("donnee recues\n");
}
else printf ("erreur reception des donnees\n");
printf("premier send du client : %s\n" ,tampon);
result=req(tampon);
/* send(newsockfd,result,strlen(result),0);
recv(newsockfd,table1.arr,sizeof(table1.arr),0);
printf("2e send du client : : %s\n",table1.arr);*/
}
}
char* req (char tampon[20])
{
int res;
strcpy(listeny.arr,tampon);
listeny.len=strlen(listeny.arr);
printf("transmission du tableau : %s\n",listeny.arr);
EXEC SQL SELECT lib_pro into :resultat from pro where cod_pro=:listeny;
strcat(resultat.arr,'\0');
printf("varchar resultat : %s\n ",resultat.arr);
printf("\n");
strcpy(resul,resultat.arr);
buf=resul;
printf("transfert de varchar dans buf : %s\n",buf);
return buf;
}
void connex (void)
{
int clilen ;
struct sockaddr_in cli_addr, serv_addr;
if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
printf("Erreur creation socket");
printf("socket initialisee\n");
bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
serv_addr.sin_port = htons(30000);
if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
printf("Le serveur ne peut pas se lier");
else printf("Le serveur a etabli une liaison\n");
listen(sockfd, 1);
clilen = sizeof(cli_addr);
newsockfd = accept(sockfd, (struct sockaddr *) &cli_addr,&clilen);
if (newsockfd < 0)
printf("Erreur de connexion");
} |
Partager