fabiorapy (Normal User)
Newbie
Messaggi: 9
Iscritto: 23/03/2009
|
Ciao a tutti...mi sono appena inscritto al forum e ho visto che ci sono persone davvero molto preparate e competenti...
sto facendo un applicazione client - server in delphi 7 usando i componenti di indy 10 per scambiare stringhe. ho trovato gia dei programmi in rete, il server e il client si connettono,come faccio a scambiare stringhe?ho provato a usare SendCmd sull'onWork del client e readlln sull onExcute del server, ma nn riesco a mandare niente...qualcuno mi diceva ke devo impostare l'IOhandler...scusate la mia superignoranza in materia...ma sono con l'acqua alla gola e se qualcuno potesse "assistermi",magari qualcuno ke ha gia lavorato con cose del genere mi salverebbe davvero la vità..i ....grazie x l'attenzione
|
|
Anonymous (Member)
Guru
Messaggi: 1059
Iscritto: 30/07/2006
|
|
|
fabiorapy (Normal User)
Newbie
Messaggi: 9
Iscritto: 23/03/2009
|
grazie mille...era proprio quello di cui avevo bisogno....
sei stato davvero di aiuto...
nn so proprio come ringraziarti...mi metto subito a lavorarci...
|
|
fabiorapy (Normal User)
Newbie
Messaggi: 9
Iscritto: 23/03/2009
|
scusa se approfitto ancora della tua conoscenza...
volevo kiederti un consiglio...
come posso gestire la perdita di connessione...per es per un problema hardware...e lo stop imprevisto del server (software..)??
si puo fare in modo ke se si verifica uno di questi problemi il server cerchi d riprendere la connesione?
|
|
Anonymous (Member)
Guru
Messaggi: 1059
Iscritto: 30/07/2006
|
se un client si disconnette dal server, il server se ne accorge dall'evento "ondisconnect" dell'oggetto tidtcpserver
se invece è il server che si disconnette i client connessi sono automaticamente sconnessi e potresti mettere un timer che ogni tot di secondi prova a ristabilire la connessione col server (nel caso si sia riattivato)
ma cmq non è il server che cerca di ristabilire la connessione con i client... è il contrario...
|
|
fabiorapy (Normal User)
Newbie
Messaggi: 9
Iscritto: 23/03/2009
|
si,so ke è il client ke si connette col server...
nn mi sono spiegato bene...allora...un server fatto in c è in esecuzione su un pc linux ke pilota un robot....e un pc remoto manda i comandi wireless al server...
se il client per un motivo qualsiasi perde la connessione col server nn vorrei ke il robot continuasse a fare quello ke stava facendo prima...rischiando di distruggere qualcosa....
il robot ha un timeout di 1 sec ma io vorrei ke si fermasse nn appena si accorge di aver perso la connessione..e soprattutto se il server per qualke motivo si blocca vorrei nn dover riavviare il pc con linux....a proposito...io ho trovato gia un esempio di server in c su linux....ma se ne hai qualcuno migliore da propormi...
|
|
Anonymous (Member)
Guru
Messaggi: 1059
Iscritto: 30/07/2006
|
si,so ke è il client ke si connette col server...
nn mi sono spiegato bene...allora...un server fatto in c è in esecuzione su un pc linux ke pilota un robot....e un pc remoto manda i comandi wireless al server...
se il client per un motivo qualsiasi perde la connessione col server nn vorrei ke il robot continuasse a fare quello ke stava facendo prima...rischiando di distruggere qualcosa....
il robot ha un timeout di 1 sec ma io vorrei ke si fermasse nn appena si accorge di aver perso la connessione..e soprattutto se il server per qualke motivo si blocca vorrei nn dover riavviare il pc con linux....a proposito...io ho trovato gia un esempio di server in c su linux....ma se ne hai qualcuno migliore da propormi.
|
wow.. interessante come cosa XD
cmq, se ho capito bene, dovresti modificare il programma che fa da server sul pc che pilota il robot, per fare in modo che se il client si disconnette il robot non faccia danni
perché se un client si disconnette, quello che se ne deve accorgere è il server stesso, dato che il client una volta disconnesso (per qualsiasi motivo) non può più comunicare col server.. e quindi devi mettere delle istruzioni nell'evento "ondisconnect" (se parliamo di delphi) che mandino dei comandi al robot dicendogli di fermarsi immediatamente..
se invece si blocca il server boh... killa e rilancia il programma.. non vedo il motivo di riavviare tutto il pc...
cmq per quanto riguarda il c, ti consiglio di aprire una discussione su quella sezione, io non posso aiutarti molto, specialmente nel campo delle connessioni... ma prima cerca tra i sorgenti che ci sono su questo sito... magari trovi qualcosa di utile Ultima modifica effettuata da Anonymous il 30/03/2009 alle 19:40 |
|
fabiorapy (Normal User)
Newbie
Messaggi: 9
Iscritto: 23/03/2009
|
ok...grazie ancora...mi sei stato davvero di aiuto...
|
|
fabiorapy (Normal User)
Newbie
Messaggi: 9
Iscritto: 23/03/2009
|
sono sempre io...
ho modificato un po il client,e mi sono accorto ke le funzioni si kiamano in modo doverso,infatti nn me lo faceva compilare se invece di client.writeln nn mettere client.iohandler.writeln e anke col readnl...mi kiedo una cosa...questo succede magari xkè i demo sono fatti con indy 9 anzichè indy 10?ho modificato il client xkè alla fine è quello ke mi interessa,il server lo uso solo per provare visto ke poi il server definitivo sarà in c su linux e ho notato ke con le modifiche suddette nel logmemo del client vengono sempre mandate cose..è come se stesse mandando sempre un invio...nn so se mi sono spiegato...ho provato a togliere il timer ma così facendo ho problemi nella riconnessione...infati nell'esempio nn c'era il tasto disconnetti ma solo esci...io ho modificato facendo in modo ke il tasto connetti diventi disconnetti se sono connesso e viceversa....come divevo togliendo il timer nn appena mi disconnetto poi nn mi fa + connettere....
penso di essere stato molto confusionario...magari se avessi mandato il codice sarei stato + kiaro...cmq se hai capito di ke sto parlando e hai qualke consiglio da darmi spara pure...grazie
|
|