![]() |
Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Forum De Bell Tolls (http://www.dsy.it/forum/forumdisplay.php?forumid=7)
-- [FSE P.R. in C] servizio echo HELP (http://www.dsy.it/forum/showthread.php?threadid=10725)
[FSE P.R. in C] servizio echo HELP
ok, mi arrendo. Non mi funziona e non capisco perché.
Ho riscritto il programma a casa, attivato il servizio echo e nonostante tutto non riesco a trasmettere sto benedetto messaggio.
La socket viene creata, la connessione avviene, apparentemente avviene anche la trasmissione, ma a terminale non mi appare niente 
Qualcuno mi sa dare una dritta?
Ecco il codice:
code:
#include <stdio.h> #include <netinet/in.h> #include <sys/types.h> #include <sys/socket.h> int main (void){ struct sockaddr_in server_addr; int sd; char *message = "hello world"; sd = socket (AF_INET, SOCK_STREAM, 0); if (sd < 0) { perror("socket() "); exit(1); } printf("Socket creata\n"); server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); server_addr.sin_port = htons(7); if ( connect(sd, &server_addr, sizeof(server_addr)) != 0) { perror("connect() "); exit(1); } printf("Connesso...\n"); printf("Inviati %d byte\n", write(sd, message,strlen(message))); close(sd); printf("programma terminato\n\n"); return 0; }
__________________
~ get Debian! ~ get FreeBSD! ~ get OpenBSD! ~
Re: [FSE P.R. in C] servizio echo HELP
Originally posted by DeepBlue
ok, mi arrendo. Non mi funziona e non capisco perché.
Ho riscritto il programma a casa, attivato il servizio echo e
Ma porc... Sto usando quello di Linux (su TCP), forse non l'ho attivato bene.
Quello che non capisco è come mai nemmeno ieri in SiLAB funzionasse: controllato tre volte che il conf fosse settato correttamente e l'ho riavviato due volte... Boh... vedo di capire perché qui non funziona, se lo scopro riposto.
Grazie 
__________________
~ get Debian! ~ get FreeBSD! ~ get OpenBSD! ~
non funziona perchè scrivi sulla socket ma non leggi.
manca la read nel tuo codice ![]()
code:
printf("Connesso...\n"); printf("Inviati %d byte\n", write(sd, message,strlen(message))); /*Io farei*/ nbyte_w = write(sd, message, sizeof(message)); read(sd, message2, nbyte_w); printf("%s", message2); close(sd); printf("programma terminato\n\n"); return 0; }
code:
#/etc/init.d/inetd start oppure #/etc/init.d/xinetd start

__________________
Linux User#271051
Only God can judge me, is that right?
Only God can judge me now
Only God baby, nobody else. All you other motherfuckers get out my business (2Pac)
Originally posted by lord2y
non funziona perchè scrivi sulla socket ma non leggi.
manca la read nel tuo codice



__________________
~ get Debian! ~ get FreeBSD! ~ get OpenBSD! ~
Originally posted by DeepBlue
*imprecazioni varie*
Non avevo capito che servisse la read..che pirla! In effetti è logico che serva...
Mi mangerò le mani per il resto della serata
Fly ma tu sotto cosa hai compilato che ti funzia?
Grazie a tutti cmq
lord2y ci vediamo lunedì![]()

__________________
Linux User#271051
Only God can judge me, is that right?
Only God can judge me now
Only God baby, nobody else. All you other motherfuckers get out my business (2Pac)
Originally posted by DeepBlue
Fly ma tu sotto cosa hai compilato che ti funzia?
a me funzionava la scrittura, pensavo che avessi un server echo tuo che stampava nella schermata da dove lo lanciavi (come il mio serverino echo multiuso) ecco perchè non avevo considerato la read!
Off-Topic:
se qualcuno ha avuto problemi con le bcopy (deference to an incomplete type)) puo` aggiungere l'header file netdb.h.
Sicuramente il problema si risolve
__________________
~ get Debian! ~ get FreeBSD! ~ get OpenBSD! ~
| All times are GMT. The time now is 12:34. | Show all 8 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.