|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
java...guida ai socket
mi potreste consigliare una buona guida sui socket in java??
possibilmente in italiano e soprattutto con esempi... vorrei riuscire a creare un client irc ![]() grazie |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
in italiano non saprei darti un link di riferimento, ma in inglese c'è questo
con un bell'esempio completo a pagina 2. Tieni conto che in java socket e thread sono talmente semplici da gestire che non credo ci siano guide più complete di quella che ti segnalo. Ciao. |
![]() |
![]() |
![]() |
#4 |
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
Grazie di che, ti mando pure i link sbagliati!
![]() Ho corretto l'URL che avevo postato spostandolo sul quello che hai segnalato tu ( è ora che io prenoti un posto all'ospizio se c'è bisogno che qualcuno mi segnali quali sono i link che volevo segnalare io ![]() Scusa ancora. Ciao |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
se io volessi loggarmi in un server ftp non mi basta fare
os.writeBytes("user guest\n"); os.writeBytes("pass guest\n"); ? poi non riesco a capire a cosa serve Codice:
catch (IOException e) { System.err.println("Couldn't get I/O for the connection to: hostname"); } |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Nov 2001
Città: Roma
Messaggi: 493
|
Si tratta di gestione delle eccezioni.Ogni azione che può sollevare un'eccezione va incorporata in un blocco try/catch.Nel blocco catch metti come ci si deve comportare in caso di una eccezione (in questo caso IOException),nel tuo caso stampi una stringa e l'errore.
__________________
Listen the noise of deep sea --Powered by Debian Sid/unstable on 2.6.17.11-- |
![]() |
![]() |
![]() |
#7 |
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
Quote:
os.println("user guest"); ma mi da questo errore cannot resolve symbol symbol : method println (java.lang.String) location: class java.io.DataOutputStream os.println("user guest"); ^ perchè?? |
|
![]() |
![]() |
![]() |
#9 |
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
Secondo il messaggio di errore del compilatore, nel codice si cerca di usare il metodo println (appartenente agli oggetti PrintStream) con un oggetto DataOutputStream (che non ha il metodo println()).
Se stai usando un socket, per usare un printstream devi prendere il canale di output e passarlo al costruttore PrintStream(OutputStream out): PrintStream printer=new PrintStream(socket.getOuputStream()); Se vuoi lavorare con un DataOutputStream su stringhe (con la certezza che ciò che parte sia anche ciò che arriva) devi codificare i byte che rappresentano la stringa. Il package java.nio.charset contiene i relativi strumenti. Ciao. |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
ok sono riuscito a fare tutto...
ora vorrei se io volessi usare dei proxy???esiste un metodo che mi permette di utilizzarli?? |
![]() |
![]() |
![]() |
#11 |
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
Vuoi fare un proxy usando java o vuoi far passare la connessione che hai creato in java attraverso un server proxy?
|
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#13 |
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
Non garantisco nulla, ma il codice per "bucare" il server proxy (FTP) dovrebbe essere
Codice:
Properties p=System.getProperties(); p.put( "ftpProxySet", "true" ); p.put( "ftpProxyHost", "host proxy" ); p.put( "ftpProxyPort", "porta proxy" ); p.put( "ftpProxyUserName", "proxyUserName"); p.put( "ftpProxyPassword", "proxyPassword"); |
![]() |
![]() |
![]() |
#14 | |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
Quote:
in pratica sto creando un client irc e vorrei dare la possibilità di collegarsi al server anche tramite proxy...posso utilizzare il codice che mi hai dato??se si come? |
|
![]() |
![]() |
![]() |
#15 |
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
Quelle cinque righe cambiano alcune proprietà lette dalla jvm a runtime in modo tale che di fronte all'apertura di un canale FTP protetto da un proxy vengano inviate prima di tutto le informazioni username e password.
Per testare se funzionano puoi metterle in una parte qualunque del codice sorgente che preceda l'apertura della connessione. Poi fai in modo collegarti all'host protetto che hai passato alla proprietà di sistema. Verificato che funzioni non ti resta che integrare nel tuo programma un qualunque tipo di interazione con l'utente che permetta allo stesso di inserire username e password quando la connessione passi attraverso un proxy server FTP (una finestra di dialogo che chieda username e password) oppure la richiesta iniziale di username e password per l'host protetto a cui ti collegherai. Purtroppo non ricordo più dove ho pescato questo sistema per passare attraverso un proxy, altrimenti ti passerei il link. Appena ho un attimo provo anch'io a vedere se funziona. Ciao, |
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
ho fatto così:
Codice:
try { Properties p=System.getProperties(); p.put( "ftpProxySet", "true" ); p.put("ftpProxyHost", "194.63.229.137" ); p.put( "ftpProxyPort", "80" ); p.put( "ftpProxyUserName", ""); p.put( "ftpProxyPassword", ""); smtpSocket = new Socket("62.152.43.744", 6667); os = new PrintStream(smtpSocket.getOutputStream()); is = new DataInputStream(smtpSocket.getInputStream()); } catch (UnknownHostException e) { System.err.println("Don't know about host: hostname"); } catch (IOException e) { System.err.println("Couldn't get I/O for the connection to: hostname"); } Codice:
cannot resolve symbol symbol : class Properties location: class smtpClient Properties p=System.getProperties(); ^ |
![]() |
![]() |
![]() |
#17 |
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
Properties è parte del package java.util
Come hai fatto è ok. |
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
ok lo compila ma nn va...mi connette senza proxy...
non è che devo passare qualche parametro al socket?? |
![]() |
![]() |
![]() |
#19 |
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
Azz, mi ero dimenticato che usi un Socket e non un URL.
rimuovi tutta la robaccia che ti ho fatto mettere nel codice e scrivi quest'altra. System.setProperty("socksProxyHost", "nomehost"); Dovrebbe impostare i socket per usare il proxy. Io sono alla frutta, se non funge... ![]() Ciao. |
![]() |
![]() |
![]() |
#20 | |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
Quote:
![]() ![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:34.