|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
[C#]Trasferimento dati tra computer via internet
Ciao,
vorrei traferire dati via internet tra due computer. Ho dato un'occhiata a un'instant messenger su pierotofy.it ma non ho capito benissimo. Mi potreste spiegare cosa dovrei fare per avere un collegamento diretto tra i due computer? Mi basta anche solo sapere cosa cercare su google, il nome di una classe, e poi m'arrangio. Ma visto che su google non saprei proprio cosa cercare spero voi mi veniate in aiuto. Grazie ciao |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Che tipo di dati vuoi trasferire? O meglio: che tipo di applicazione vuoi sviluppare?
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Sep 1999
Città: Pistoia
Messaggi: 618
|
Socket non ti va bene ?
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
|
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
non so proprio da dove partire, nel senso che non conosco nessuna delle possibilità offerte. Per questo ho chiesto...
Allora io vorrei creare un programma che permetta di inviare e ricevere file da un computer all'altro, aggiungerci magari (se non è troppo complicato) un modo per navigare all'interno dell'altro computer e mandarsi i file, infine 2 opzioni che mi piacerebbe un casino aggiungere: instant messenger (basta che serva per parlare, senza cose come l'emotion che sono secondarie) e un sistema per la criptazione dei dati che vengono trasferiti. Il tutto mi sembra un'impresa alquanto divertente, anche se ancora non ho ben presente dove saranno le difficoltà... Tranquilli, non voglio entrare in un computer e depredarlo |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
|
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
ho trovato questta bella guida:
http://www.dotnethell.it/articles/FTP.aspx l'unica cosa che non saprei proprio come fare, è come utilizzare la connessione da computer a computer e non da computer a server. Ultima modifica di Mattyfog : 04-10-2008 alle 14:52. |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
questo codice usa l'ftp?
Codice:
try
{
nick = textBoxNick.Text;
listener = new TcpListener(45455);
listener.Start();
messaggio = Environment.NewLine + "[" + DateTime.Now.TimeOfDay.Hours + ":" + DateTime.Now.TimeOfDay.Minutes + "] In attesa di connessioni..." + Environment.NewLine;
client = listener.AcceptTcpClient();
stream = client.GetStream();
writer = new StreamWriter(stream);
reader = new StreamReader(stream);
messaggio = Environment.NewLine + "[" + DateTime.Now.TimeOfDay.Hours + ":" + DateTime.Now.TimeOfDay.Minutes + "] Connessione ricevuta" + Environment.NewLine;
listener.Stop();
try
{
writer.WriteLine(nick + " :!!!PRESENTAZIONE!!!");
writer.Flush();
while ((risposta = reader.ReadLine()) != null)
{
nickRisposta = risposta.Substring(0, risposta.IndexOf(":") - 1);
messaggioRisposta = risposta.Substring(risposta.IndexOf(":") + 1);
if (messaggioRisposta == "!!!TRILLO!!!")
{
messaggio = "[" + DateTime.Now.TimeOfDay.Hours + ":" + DateTime.Now.TimeOfDay.Minutes +"] " + nickRisposta + " ha inviato un trillo!" + Environment.NewLine;
Console.Beep(3000, 2000);
}
else if (messaggioRisposta == "!!!PRESENTAZIONE!!!")
{
messaggio = "[" + DateTime.Now.TimeOfDay.Hours + ":" + DateTime.Now.TimeOfDay.Minutes + "] " + nickRisposta + " si e' connesso alla chat" + Environment.NewLine;
}
else
messaggio = "[" + DateTime.Now.TimeOfDay.Hours + ":" + DateTime.Now.TimeOfDay.Minutes + "] <" + nickRisposta + "> " + messaggioRisposta + Environment.NewLine;
}
}
catch
{
MessageBox.Show("Impossibile ricevere messaggi");
}
finally
{
if (client != null)
client.Close();
if (writer != null)
writer.Close();
if (reader != null)
reader.Close();
if (stream != null)
stream.Close();
messaggio = Environment.NewLine + "[" + DateTime.Now.TimeOfDay.Hours + ":" + DateTime.Now.TimeOfDay.Minutes + "] Connessione persa" + Environment.NewLine;
}
}
catch
{
MessageBox.Show("Errore di connessione");
}
finally
{
if (client != null)
client.Close();
if (writer != null)
writer.Close();
if (reader != null)
reader.Close();
if (stream != null)
stream.Close();
messaggio = Environment.NewLine + "[" + DateTime.Now.TimeOfDay.Hours + ":" + DateTime.Now.TimeOfDay.Minutes + "] Connessione persa" + Environment.NewLine;
}
}
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Trasferire un dato da un computer all'altro è un po' come parlare, c'è chi parla e chi ascolta, quindi (a meno di casi particolari) per trasferire un file ci sarà bisogno di un client e di un server. Ovviamente il server può funzionare anche da client e viceversa, tutto dipende dal protocollo adottato, ma visto che esiste l'FTP è bene non dannarsi nell'inventarne uno nuovo. Oltre alle funzionalità del namespace System.Net citato in precedenza puoi usare librerie specifiche.
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
|
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
il problema è che di articoli che spiegano come realizzare un programma per uplodare file su un sito ce ne sono migliaia, solo che appunto spiegano come connettersi a un sito!!!
http://www.dotnethell.it/articles/FTP.aspx lì, ad esempio il primo pezzo di codice che scrive è Codice:
FtpWebRequest _FtpRequest = (FtpWebRequest) WebRequest.Create("ftp://mioserver/”);
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
tra l'altro, tutti i comandi usati normalmente per vedere i file sui server, se collegassi due computer funzionerebbero?
se la risposta è no forse avrebbe più senso usare le socket come nell'esempio del codice che ho postato no? |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
uppo
|
|
|
|
|
|
#14 | ||
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
Quote:
|
||
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
Quote:
|
|
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
Questo è un semplice sistema di trasferimento file, ma secondo me non è affatto robusto né efficiente. |
|
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
è che probabilmente non sono in grado di creare un server in grado di rispondere ai comandi FTP... Proprio non saprei da dove cominciare...
quindi forse sarebbero più semplici le socket |
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Un server FTP sotto sotto usa comunque i socket, il fatto è che se non sai implementare, con i socket, un protocollo FTP minimale (non devi supportare tutti i comandi, ne bastano 2 o 3) difficilmente riuscirai a progettare&sviluppare un tuo protocollo.
Comunque, se ti sembra più semplice, dai un'occhiata all'esempio proposto poco fa... |
|
|
|
|
|
#19 |
|
Junior Member
Iscritto dal: Nov 2008
Messaggi: 17
|
Salve,
Anche io devo fare una cosa simile... devo scrivere un applicazione che trasferisca dati da una scheda digitale con a bordo un FPGA in cui è stato implementato un processore embedded su cui gira il sistema operativo uClinux e un PC (linux). I dati stanno sulla RAM e io devo dal PC visualizzarli e scaricarli... Potete darmi qualche consiglio su come realizzare l'applicazione?? Serve utilizzare l'FTP o è possibile farlo con un semplice socket TCP?? Potete fornirmi qualche semplice esempio di codice?? Scusate ma anch'io sono alle prime armi....in internet si trovano molti esempi su come scrivere socket ma nessuno sull'FTP!! |
|
|
|
|
|
#20 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Meglio che apri un topic a parte perche' mi sa che non lo farai in C#
(anche se potresti e avresti vita non troppo difficile)
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:13.


















