Ερώτηση σχετικά με tcp-sockets

...ασύγχρονα μαθήματα γλώσσας C

Ερώτηση σχετικά με tcp-sockets

Δημοσίευσηαπό panos7 » 05 Απρ 2011, 01:29

Καλησπέρα,
εχω μια εργασία σε γλωσσα προγραμματισμού C με tcp-sockets και ηθελα μια βοήθεια παρακαλώ...
στο προγραμμα μου θα πρεπει ο client να στελνει στον server 2 txt αρχεία(τα περνάμε απο τη main...) οπου ο τελευταίος θα κάνει συνένωση των αρχείων αυτών...

για τον client εχω κανει:
Κώδικας: Επιλογή όλων
#include <sys/socket.h>

#include <netinet/in.h>

#include <stdio.h>

#include <string.h>

#define SERV_HOST_ADDR "127.0.0.1"

#define SERV_TCP_PORT 6000





int main(int argc, char**argv)

{

int sockfd;

struct sockaddr_in my_addr;

char filename[BUFSIZ];



/*Dimiourgia socket*/

if((sockfd=socket(AF_INET,SOCK_STREAM,0)) < 0)

{

perror("socket");

return 0;

}



/*Ka8orismos port k ip address gia ton client*/

bzero(&my_addr,sizeof(my_addr));

my_addr.sin_family = AF_INET;

my_addr.sin_addr.s_addr=inet_addr(SERV_HOST_ADDR);

my_addr.sin_port=htons(SERV_TCP_PORT);



/*Sundesi me ton server*/

if ((connect(sockfd, (struct sockaddr *)&my_addr, sizeof(my_addr)))<0)

{

perror("connect");

return 0;

}





/*Apostoli tou onomatos ston server mesw tou socket*/

if ((send(sockfd,argv[1],strlen(argv[1]),0))<0)

{

printf("Error occured on sending data to server\n");

return 0;

}



/*Lipsi apanthshs apo ton server*/

if ((recv(sockfd,filename,sizeof(filename),0))<0)

{

printf("Error occured on received response\n");

return 0;

}

return 0;

}


στον παραπάνω κώδικα στέλνω το 1ο txt στον server αλλα δεν μπορώ να καταλαβω πως στελνω παράλληλα και το 2ο txt για να γινει η συνένωση στον server
Τελευταία επεξεργασία από panos7 και 06 Απρ 2011, 12:52, έχει επεξεργασθεί 1 φορά/ες συνολικά
panos7
babeTUX
babeTUX
 
Δημοσιεύσεις: 4
Εγγραφή: 02 Απρ 2011, 21:45
Εκτύπωση

Re: βοηθεια σε γλωσσα C

Δημοσίευσηαπό linuxs » 05 Απρ 2011, 02:26

Καλησπέρα και καλως ήρθες στο forum! Καταρχήν θα σε παρακαλούσα να αλλάξεις τον τίτλο σου σε κάτι όπως: "Ερώτηση σχετικά με tcp-sockets" όπως τα ανέφερες στο post σου. Τώρα, σχχτικά με αυτό που ρώτησες είναι μέρος της άσκησης τα αρχεία να στέλνονται ταυτόχρονα στον server(το λέει η εκφώνηση με άλλα λόγια...)? Αν όχι, θα μπορούσες να στέλνεις κάποια αρχεία(όσα θές) και να αποθηκεύονται σε ένα πίνακα n θέσεων στο server. Μετά, ένα ένα τα κάνεις ότι θες. Αυτό σαν πρώτη σκέψη. Αν όντως πρέπει να τα στέλνεις παράλληλα πες μου να σκεφτώ κάτι άλλο. ;)
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

Re: Ερώτηση σχετικά με tcp-sockets

Δημοσίευσηαπό panos7 » 06 Απρ 2011, 13:04

ευχαριστώ για την απαντηση και συγγνωμη που δεν απαντησα και γω αλλα είχα προβλημα με το internet....

προσπάθησα να αποθηκεύσω τα argv[1],argv[2] σε ενα πινακα και να τα στείλω στον server αλλα δεν τα καταφερα..


Κώδικας: Επιλογή όλων
char **array;
int count=2,i;
array=(char**)calloc(sizeof(char**),count);
array[0]=argv[1];
array[1]=argv[2];

for(i=0;i<2;i++)
{

/*Apostoli tou onomatos ston server mesw tou socket*/

if ((send(sockfd,array[i],strlen(array[i]),0))<0)

{

printf("Error occured on sending data to server\n");

return 0;

}

}



αντίστοιχα στον server:
Κώδικας: Επιλογή όλων

for(i=0;i<2;i++)
{

/*Lipsi minimatos apo client*/

if ((recv(newsockfd,array[i],sizeof(array[i]),0))<0)

{

printf("Error on receiving data from client\n");

exit(0);

}

}



δεν μπορώ να καταλάβω πως θα στείλω τα δυο strings απο τον client και να τα παρει ο server...μπορει καποιος ας βοηθήσει...
panos7
babeTUX
babeTUX
 
Δημοσιεύσεις: 4
Εγγραφή: 02 Απρ 2011, 21:45
Εκτύπωση

Re: Ερώτηση σχετικά με tcp-sockets

Δημοσίευσηαπό linuxs » 06 Απρ 2011, 20:35

Θα σου απαντήσω ολοκληρωμένα το βράδυ. Έκανα πρόσφατα μια άσκηση που έστελνα 10 αρχεία στον server και έκανε την δουλειά του. Προφανώς κάτι θέλεις αλλα με δύο αρχεία σωστά;;; Θα σου δώσω τον κώδικα και θα σου πώ. Σόρρυ που το αναβάλλω μέχρι το βράδυ! ;)
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

Re: Ερώτηση σχετικά με tcp-sockets

Δημοσίευσηαπό panos7 » 06 Απρ 2011, 22:28

δεν υπάρχει πρόβλημα οποτε μπορείς...
ολο το βραδυ εδω θα είμαι γιατι παραδίδω αυριο!!!

βασικά κανω αυτα που χρειάζεται αλλα εχω ---->Error occured on received response στον client..... :cry:
panos7
babeTUX
babeTUX
 
Δημοσιεύσεις: 4
Εγγραφή: 02 Απρ 2011, 21:45
Εκτύπωση

Re: Ερώτηση σχετικά με tcp-sockets

Δημοσίευσηαπό linuxs » 07 Απρ 2011, 01:18

Κοίτα στο παρακάτω link στην καρτέλα "Εργαστήριο" και κατέβασε το "Samplecode" ελπίζω να βοηθήσει. Δεν μπορώ να κάνω πολλά γιατί γράφω πρόοδο αύριο! ;) Καλή μας επιτυχία...

Υπ. κοίτα και το pm που σου έστειλα.


http://www.cs.uoi.gr/~stergios/teaching/4-45/
Τελευταία επεξεργασία από linuxs και 07 Απρ 2011, 06:14, έχει επεξεργασθεί 1 φορά/ες συνολικά
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

Re: Ερώτηση σχετικά με tcp-sockets

Δημοσίευσηαπό panos7 » 07 Απρ 2011, 01:35

που ειναι το link?
panos7
babeTUX
babeTUX
 
Δημοσιεύσεις: 4
Εγγραφή: 02 Απρ 2011, 21:45
Εκτύπωση

Re: Ερώτηση σχετικά με tcp-sockets

Δημοσίευσηαπό linuxs » 18 Απρ 2011, 15:17

Ελπίζω να τα πήγες σχετικά καλά...πάντως αν θέλεις μπορούμε να το συζητήσουμε το θέμα(αν και έχεις παραδώσει) ;)
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση


Επιστροφή στο Μαθήματα C

cron