Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Community > Forum De Bell Tolls
 
[FSE P.R. in C] servizio echo HELP
Clicca QUI per vedere il messaggio nel forum
DeepBlue
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; }

Flyzone
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

Non stò seguendo l'fse quindi non sò esattamente quello che stai facendo...
Cmq il codice che hai postato con il mio echo server funziona, la connessione avviene ed il testo viene inviato...a parte che non invi un \n ma quello dipende da quello che vuoi far tu.
Che server echo utilizzi?

DeepBlue
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 :)

lord2y
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; }



In ogni caso dovrebbe funzionare...

ricordo che l'echo è avviato da inetd o xinetd.
Guarda di aver avviato il deamon con

code:
#/etc/init.d/inetd start oppure #/etc/init.d/xinetd start


:ciao:

DeepBlue
Originally posted by lord2y
non funziona perchè scrivi sulla socket ma non leggi.

manca la read nel tuo codice ;)

*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ì :P

lord2y
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ì :P


ok, buona domenica ;)
:ciao:

Flyzone
Originally posted by DeepBlue
Fly ma tu sotto cosa hai compilato che ti funzia?

:asd: 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! :oops: chiedo scusa :oops:

P.S: ok ammetto che in tutta la mia vita i servizi echo li ho dovuti sempre disattivare mai attivare :D

DeepBlue
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 :)

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate