K so i have a client and a server and i am trying to send from client 2 vectors of numbers and the server will receive them and send back another vector with numbers from vector 1 and not in vector 2 received from client anyway this is bla bla .. i did the simple sento() from client and recvfrom() in server, but trampled at " HOW TO send from server back to the client and receive from client ?
the comments and this writed are in romanian ignore that:)
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <unistd.h>
#include <netinet/in.h>
#include <string.h>
#define max 100
int main() {
int sir1[max] , sir2[max];
char s[max];
char * ps;
int c;
int cod, lsi, ls1 ,ls2;
struct sockaddr_in server, client ;
c = socket(AF_INET , SOCK_DGRAM , 0 );
if ( c < 0 ) {
fprintf( stderr , "Eroare la creare socket in client .\n" );
return -1;
}
memset(&client , 0 , sizeof(struct sockaddr_in) );
client.sin_family = AF_INET;
client.sin_port = htons(6363);
client.sin_addr.s_addr = inet_addr("127.0.0.1");
printf("Dati primul sir de numere : \n");
fgets(s,99,stdin);
int i=-1;
ps = strtok (s," .-,\n\0");
while( ps != NULL ) {
i++;
sir1[i] = atoi(ps);
ps = strtok (NULL ," .-,\n\0");
}
ls1=i;
int j;
printf("Sirul 1 de numere: ");
for(j=0; j<= ls1; j++)
printf("%d ,",sir1[j]);
printf("\nDe lungime %d \n",ls1+1);
printf("\n\nDati al doilea sir de numere : \n");
fgets(s,99,stdin);
i=-1;
ps = strtok(s , " .-,\n\0");
while(ps != NULL) {
i++;
sir2[i] = atoi(ps);
ps = strtok(NULL , " .-,\n\0");
}
ls2 = i;
printf("Sirul 2 de numere : ");
for(j=0; j<= ls2; j++)
printf("%d ,",sir2[j]);
printf("\nDe lungime %d \n",ls2+1);
sendto(c , &ls1 , sizeof(int) , 0 , (struct sockaddr * ) &client ,sizeof(client) );
for(i=0 ; i <= ls1 ; i++)
sendto(c , &sir1[i] , sizeof(int) , 0 , (struct sockaddr * ) &client , sizeof(client) );
sendto(c , &ls2 , sizeof(int) , 0 , (struct sockaddr * ) &client , sizeof(client) );
for(i=0 ; i <= ls2 ; i++)
sendto(c , &sir2[i] , sizeof(int) , 0 , (struct sockaddr * ) &client , sizeof(client) );
recvfrom(c , &lsi , sizeof(int) , 0 , (struct sockaddr *) &client , sizeof(client) );
printf("\nI GET FROM SERVER %d " , lsi );
printf("\n");
close(c);
return 0;
}
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <unistd.h>
#include <netinet/in.h>
#include <string.h>
#define max 100
int main() {
int si[max],sir1[max], sir2[max];
int s;
int cod , i,lsi, ls1, ls2 ;
struct sockaddr_in server , client;
int clength=sizeof(struct sockaddr_in);
s = socket( AF_INET , SOCK_DGRAM , 0 );
if ( s < 0 ) {
fprintf( stderr , "Eroare la creare socket in server . \n" );
return -1;
}
memset( &server , 0 , sizeof(struct sockaddr_in) );
server.sin_family = AF_INET;
server.sin_port = htons(6363);
server.sin_addr.s_addr = INADDR_ANY;
cod = bind ( s , (struct sockaddr *) &server , sizeof(struct sockaddr) );
if ( cod < 0 ) {
fprintf( stderr , "Eroare la bind in server. \n");
return -1;
}
while(1) {
printf("\nserver astept\n");
recvfrom(s , &ls1 ,sizeof(int),0 ,(struct sockaddr *) &client , &clength );
printf("Am primit lungimea : %d \n" , ls1+1 );
for(i=0; i<=ls1; i++)
recvfrom(s , &sir1[i], sizeof(int), 0 , (struct sockaddr * ) &client , &clength );
printf("AM primit de la client sirul 1 : ");
for(i=0 ; i <= ls1 ; i++ )
printf(" %d",sir1[i]);
recvfrom(s , &ls2 ,sizeof(int),0 ,(struct sockaddr *) &client , &clength );
printf("\nAm primit lungimea : %d \n" , ls2+1 );
for(i=0; i<=ls2; i++)
recvfrom(s , &sir1[i], sizeof(int), 0 , (struct sockaddr * ) &client , &clength );
printf("AM primit de la client sirul 2 : ");
for(i=0 ; i <= ls2 ; i++ )
printf(" %d",sir1[i]);
}
lsi =69;
sendto( s , &lsi , sizeof(int) , (struct sockaddr *) &client , &clength );
close(s);
return 0;
}