chex Δημοσ. 11 Απριλίου 2011 Share Δημοσ. 11 Απριλίου 2011 Εχω τους παρακατω κωδικες: client.c >#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #define PORT 4000 int main(int argc, char *argv[]) { //δηλωσεις...... char *buffer="Hello UDP\n"; //αρχικοποιηση το server... n=connect(com_line,(struct sockaddr*)&server,sizeof(server)); if(n==-1){ perror("NOTCONNECTING"); exit(1); } send(com_line,buffer,strlen(buffer),0); close(com_line); return 0; } server.c >#include <sys/types.h> #include <stdlib.h> #include <unistd.h> #include <sys/socket.h> #include <netinet/in.h> #include <string.h> #include <netdb.h> #include <stdio.h> #include <arpa/inet.h> #include <error.h> #define PORTNUM 4000 int main(int argc, char** argv) { char *buf; com_line = socket(AF_INET, SOCK_STREAM, 0); //εχω αφαιρεσει τον υπολοιπο κωδικα της, και τις δηλωσεις.. bind(com_line,(struct sockaddr *)&server,serv_len); listen(com_line,1); while(1){ cl=accept(com_line,(struct sockaddr *)&client,&client_len); if(cl<0){ perror("NOT ACCEPT"); exit(1); } while(( n = recv(cl,buf,strlen(buf),0))>0) //write(1,buf,n); //buf[n]='\0'; printf("%s\n",num); close(cl); } close(com_line); return 0; } Το προβλημα ειναι οτι ο server ενω περιμενει να κανει το accept και λογικα το κανει οταν τρεχει ο client το μηνυμα που θα επρεπε να εμφανιζει δεν τυπωνεται στο stdout. Δεν κανει τιποτα. Ποιο ειναι το προβλημα στη συγκεκριμενη υλοποιηση?? Εχω δοκιμασει με διαφορους τροπους, ακομα και με απλους int αλλα τιποτα. Τι κανω λαθος? Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
chex Δημοσ. 12 Απριλίου 2011 Μέλος Share Δημοσ. 12 Απριλίου 2011 Το προβλημα το ελυσα αλλα τωρα δεν εμφανιζονται σωστα οι χαρακτηρες. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
javavall Δημοσ. 12 Απριλίου 2011 Share Δημοσ. 12 Απριλίου 2011 Τα buffer του send και receive πρέπει να έχουν το ίδιο μέγεθος για να μην έχεις φαντάσματα. Καλύτερα να το έχεις προκαθορίσει πχ buf[512]. Καλύτερα βέβαια να είχαμε ολόκληρο των κώδικα για να βλέπαμε και τις δηλώσεις. Η num πχ που τυπώνεις δεν παίρνει καμία τιμή όπως φαίνεται. Μελέτησε ένα έτοιμο παράδειγμα για να σε βοηθήσει να καταλάβεις κάποια πράγματα καλύτερα. Για παράδειγμα: link Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.