PDA

Visualizza la versione completa : [c] simulare invio in una stringa


nik600
30-10-2004, 18:25
ciao a tutti

sto provando a costruire una specie di telnet personale, che si collega su un porta e invia stringhe di comandi, il problema è che non riesco a simulare l'invio!

qualcuno di voi sa come posso fare?

ho provato anche a fare una cosa di questo tipo:

char invio[]={13};

13 dovrebbe essere il codice ASCII dell'invio...ma non funziona!

??

netarrow
30-10-2004, 22:23
ma non basta mette \n?

:ciauz:

_sys/sid
31-10-2004, 11:45
In genere l'invio (nei vari protocolli) e' dato da: CRLF ("\r\n")

ma se usi la funzione send(), visto che stai usando i socket, non ti serve dare l'invio...
Almeno credo.

nik600
31-10-2004, 12:25
è quello che pensavo anche io!

eppure non funziona!

ho provato a dare \r\n ma non va...cioè vi spiego...anzi posto un pezzo di codice cosi mi capite meglio:



char saluto[]={"helo\n\r"};
send(conn,saluto,strlen(saluto),0);



mi collego alla porta 25 del mio server SMTP e provo ad inviare il comando...mentre faccio tutto questo (tutte le prove sono in locale) analizzo i pacchetti di rete....

vedo che una volta stabilita la connessione il server mi manda il seguente messaggio:

220 nomeserver ESMTP qmail..; Sun, 31 Oct 2004 11:21:39 +0100

il che significa che la connessione è avvenuta correttamente

quando mando helo vedo un pacchetto che va da me al server con la scritta "helo"

a questo punto il server risponde con un pacchetto "vuoto" invece che

250 nomepc Hello

quindi ho pensato che il motivo sia dovuto al mancato "invio"

altrimenti cosa può essere?

grazie

internet
31-10-2004, 13:18
Originariamente inviato da nik600
è quello che pensavo anche io!

eppure non funziona!

ho provato a dare \r\n ma non va...cioè vi spiego...anzi posto un pezzo di codice cosi mi capite meglio:



char saluto[]={"helo\n\r"};
send(conn,saluto,strlen(saluto),0);

grazie

prova con questo


char saluto[]={"helo\r\n"};

nik600
31-10-2004, 13:58
sono un :fagiano: !

ora va!

grazie mille!

Loading