Vai al contenuto

[TOPIC UFFICIALE] [sw] programma di test per reti + intro a java(tutto senza GUI u_u )

wifi programmazione reti guida java java

  • Non puoi aprire una nuova discussione
  • Effettua l'accesso per rispondere
Questa discussione ha avuto 78 risposte

#1
pio ping 34

pio ping 34
  • Super Eye Fan

  • StellettaStellettaStellettaStelletta
  • Gruppo: Utente Pro
  • Messaggi: : 2074
Si Parte con ilImmagine inseritascritto in java

per sviluppare il codice faro' fede e riferimento a queste righe che "per quanto incomplete e scritte in una ventina di minuti" aspirerebbero ad essere una specifica per la realizzazione del programma questa e' la bozza di partenza
Spoiler

AVVERTENZE PER L'USO: Dato che credo nei programmi Open e nello scambio di idee :sisi:, se avete osservazioni, migliorie, domande (postate pure.. e' un progetto di tutti per tutti e per qualche giorno sono libero da impegni)So anche che il programma fa una cosa abbastanza comune e che sotto linux sarebbe implementabile con uno script bash in 10 righe.Pero' volevo innanzitutto fare un programmino portabile su tutti i sistemi operativi.. in modo da poter eseguire il test tra un computer che magari fa girare windows e un macbook(e non solo da quelle 2-3 persone -me compreso- che utilizzano linux)E poi, mi piaceva riprendere un po' in mano java che e' da qualche mese che non lo tocco piu'.. :goccia:

LINK AL PROGRAMMA
http://dl.dropbox.co... case/ctrlp.jar <-- ctrlp
http://dl.dropbox.co...se/testp.jar<-- testp


DIARIO DI SVILUPPO
parte 1
Spoiler
parte 2
Spoiler

parte 3
Spoiler

parte 4
Spoiler

parte 5
Spoiler

Immagine inserita
MINIGUIDA JAVA

Come Installare java(OpenJdk-7) da console su ubuntu
Spoiler

Breve (e traumatica ) INTRO - tutto(ma proprio tutto) quello che serve per scrivere 3 righe di codice
Spoiler

JAVA non OO -
Spoiler
in continuo aggiornamento

Modificata da pio ping 34, 05 October 2012 - 02:44 AM.


#2
Metallingus 91

Metallingus 91
  • Your Tears Don't Fall They Crash Around Me

  • StellettaStellettaStellettaStelletta
  • Gruppo: Utente Pro
  • Messaggi: : 2171
ehm io non so nulla di programmazione, o pochissimo... se ti posso aiutare (e tu insegni qlc a me) a disposizione :D

#3
pio ping 34

pio ping 34
  • Super Eye Fan

  • StellettaStellettaStellettaStelletta
  • Gruppo: Utente Pro
  • Messaggi: : 2074
@METALLINGUS sei il benvenuto..
se proprio non hai mai visto nulla di programmazione e vuoi iniziare a scrivere qualche programmino in java, la cosa migliore che puoi fare e' andare sul sito della Oracle e scaricarti NETBEANS, (oppure ECLIPSE, che secondo me e' piu' leggero e piu' versatile)

quello che mi piacerebbe fare, sarebbe anche una introduzione alla programmazione, per neofiti...
pero' mi sembra che questo argomento (rete / concorrenza), siano forse un po' avanzati per chi si avvicina per la prima volta alla programmazione
sicche mi limito a postare lo status dello sviluppo del programma e qualche riga di codice,
cercando di spiegare quello che sto facendo, tando per rendere familiari concetti che sono all'ordine del giorno per chi programma.

AVVERTIMENTI
sono uno studente e non conosco in superdettaglio tutti i meccanismi che stanno sotto alle API, e dato che mi piacerebbe espandere le mie conoscenze, se vedete qualche imprecisione/generalizzazione di troppo o avete qualche osservazione fatevi avanti..

^_^ ..
io intanto ne approfitto per ripassare un po' di programmazione

Modificata da pio ping 34, 17 September 2012 - 08:05 AM.


#4
Guest_LyotoeYe

Guest_LyotoeYe
  • Gruppo: Ospiti

@METALLINGUS sei il benvenuto..
se proprio non hai mai visto nulla di programmazione e vuoi iniziare a scrivere qualche programmino in java, la cosa migliore che puoi fare e' andare sul sito della Oracle e scaricarti NETBEANS, (oppure ECLIPSE, che secondo me e' piu' leggero e piu' versatile)

quello che mi piacerebbe fare, sarebbe anche una introduzione alla programmazione, per neofiti...
pero' mi sembra che questo argomento (rete / concorrenza), siano forse un po' avanzati per chi si avvicina per la prima volta alla programmazione
sicche mi limito a postare lo status dello sviluppo del programma e qualche riga di codice,
cercando di spiegare quello che sto facendo, tando per rendere familiari concetti che sono all'ordine del giorno per chi programma.

AVVERTIMENTI
sono uno studente e non conosco in superdettaglio tutti i meccanismi che stanno sotto alle API, e dato che mi piacerebbe espandere le mie conoscenze, se vedete qualche imprecisione/generalizzazione di troppo o avete qualche osservazione fatevi avanti..

^_^ ..
io intanto ne approfitto per ripassare un po' di programmazione


Sarebbe cosa buona e giusta e fossi in te aggiornerei direttamente questo topic e cambierei il titolo della discussione per attirare più gente , decidi un titolo meno "aggressivo" XD e che abbia a che fare con la programmazione che te lo cambio ;) (ovvio che lasci anche il test wifi con java)

#5
Tiagullo

Tiagullo
  • L'uomo Dei Notebook!

  • StellettaStellettaStellettaStellettaStellettaStellettaStellettaStellettaStelletta
  • Gruppo: [Mod]Moderatore
  • Messaggi: : 14976
non è cosi facile socio! Fidati io java l'ho studiato alle superiori per un anno e fare un topic solo per insegnare la programmazione è molto complicato! :)

#6
pio ping 34

pio ping 34
  • Super Eye Fan

  • StellettaStellettaStellettaStelletta
  • Gruppo: Utente Pro
  • Messaggi: : 2074
diario di sviluppo.. #1

mi sono reso conto che l'abbozzo di specifica che mi sono dato fa veramente schifo T_T: Non dice nulla di veramente utile e mi ha lasciato tante soluzioni possibili,
cosi ho passato i primi giorni a prendere in considerazione varie/troppe soluzioni possibili.

Alla fine (ma mi riservo di cambiare tutto di nuovo ;< ), sono arrivato alla conclusione che chi usera' il programma per il test della velocita' di connessione(io? :snape: ), non voglia smanettare troppo con indirizzi IP, configurazioni passate per riga di comando e altre atrocita' del genere, ma si voglia limitare a lanciare il numero minimo di programmi indispensabili per far girare i test.

In definitiva ci saranno tanti programmi sparsi per i vari computer che compongono la rete
che "si presentano" ad un particolare programma(il centro di controllo) che girera' solo su un computer.

Lo scopo di questo programma e' di creare delle coppie per la ricezione/invio dei dati di test, che faccia partire il test e che organizzie e permetta di visualizzare i dati del test su un unico computer.
Per rendere piu' semplice l'installazione e la formazione di coppie di invio/ricezione , i programmi che inviano i dati ad un computer, possono allo stesso tempo anche riceverli da un (e uno solo) altro computer della rete.

-------------------------------------------------------------------------------------------------------------------------

problema 1. ( ancora prima di cominciare iniziano i problemi :doson: )

dato che non volete e non voglio stare a smanettare con interfacce di rete varie, indirizzi IP e altre simili amenita' occorre creare un meccanismo che nasconda a chi utilizza il programmino tutta una serie di dettagli, che potrebbero confonderlo e complicare le cose..

la soluzione proposta e' questa:

Ogni programma di invio/ricezione cerca quali sono gli indirizzi IP disponibili nel computer dove gira. Se ne e' presente uno, nessun problema, si usera' quello, se ce ne sono piu' di uno si chiedera' all'utente quale si vuole utilizzare..
----------------------------------------------------------------------------------------------------------
E ora LA PRATICA

sotto spoiler c'e' una introduzione per chi non sa nulla di java/netbeans e/o linguaggi a oggetti, e vuole provare a capire qualcosa senza limitarsi a ricopiare bovinamente
il codice
Spoiler


Il programma che andremo a scrivere dentro il main, ci mostra tutti gli indirizzi IP
con i quali viene identificato il computer che fa girare il programma.


/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package pacchetto;



import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;

/**
*
* @author Ciccio Pasticcio
*/
public class Test {

public static void main(String[] args) throws SocketException{
/*la parte throws indica gli errori/eccezioni che il metodo puo' sollevare, ci si ritorna in seguito */

Enumeration<NetworkInterface> interfacceRete=NetworkInterface.getNetworkInterfaces();
/*la frase sopra definisce un oggetto di tipo Enumeration, un insieme di oggetti che possono essere restituiti uno a uno, la parte con le parentesi angolate dice che ogni elemento che fa parte del tipo Enumeration a sua volta e' un oggetto di tipo NetworkInterface. interfacciaRete e' il nome con il quale chiamo l'oggetto Enumeration in seguito. L'uguale rappresenta l'assegnamento, cioe' a cosa associo il nome [b]interfacceRete[/b].
In questo caso ho associato interfacciaRete a il valore restituito da un metodo di tipo "static" della classe NetworkInterface (che e' una classe predefinita di java che definisce delle azioni e dei parametri delle schede di rete dei computer ).*/

System.out.println("Ricerca indirizzi IP del computer");
/*questo comando serve per scrivere su schermo andando a capo: invoco il metodo println() sull'oggetto out nella classe System*/
while(interfacceRete.hasMoreElements()){

/*fin quando interfacce rete contiene un elemento*/
NetworkInterface cursore=interfacceRete.nextElement();
/*prendi un elemento, e lo chiamo cursore, rimuovilo deall'insieme*/
Enumeration<InetAddress> listaIndirizzi=cursore.getInetAddresses();
/*e ricava la listadi indirizzi IP associato al cursore*/
while(listaIndirizzi.hasMoreElements()){
/*fin quando lista indirizzi contiene un elemento*/
System.out.println(listaIndirizzi.nextElement().getHostAddress());
/*stampa indirizzo*/
}
}
}
}
se da dentro netbeans premiamo il triangolo verde,in alto sotto la barra degli strumenti,
otteniamo il seguente risultato(compare in fondo in una finestrella con su scritto output)

Ricerca indirizzi IP del computer
fe80:0:0:0:201:2eff:fe27:973f%2
1.1.1.4
0:0:0:0:0:0:0:1%1
127.0.0.1
nel mio caso ha trovato 4 indirizzi
(in realta' dovrebbero essere due gli altri due in piu' sono la traduzione nel nuovo standard ip6 degli indirizzi ip4 della mia scheda di rete )

/*FINE*/

Se avete dubbi /domande /commenti chiedete pure.. io porto avanti il programmino..
P.S. Caso mai postate i vostri risultati o cose strane che vi sono capitate.. (che tanto succedono sempre :asd: )

P.P.S non trovo il modo di editare il titolo..se non riesco a trovarlo editatelo pure !! ^_^

Modificata da pio ping 34, 21 September 2012 - 06:24 PM.


#7
kracaos

kracaos
  • Super Eye Fan

  • StellettaStellettaStellettaStelletta
  • Gruppo: Utente Pro
  • Messaggi: : 1582
sto topic capita proprio a fagiolo :asd:

volevo chiedere su off-topic, ma visto questo tread... bando alle ciance, vorrei eseguire programmi java (esercizi piuttosto semplici niente di che) però non so quale versione scaricare e sopratutto dove.

il mio pc è un pentium 4 e con os da 32bit, sono andato sul sito di oracle, ma non so questa vers va bene?

Linux x86 (32-bit)Immagine inserita jdk-7u3-linux-i586.rpm

magari anche da altre fonti :sisi:

#8
kracaos

kracaos
  • Super Eye Fan

  • StellettaStellettaStellettaStelletta
  • Gruppo: Utente Pro
  • Messaggi: : 1582
comunque grazie a me stesso ho scaricato il jdk per linux 32bit :sisi:

è un file zip, non riesco a capire come si installa però :gesty:

#9
Elnor

Elnor
  • Strong Eye Fan

  • StellettaStellettaStelletta
  • Gruppo: Utente Pro
  • Messaggi: : 1089

comunque grazie a me stesso ho scaricato il jdk per linux 32bit :sisi:

è un file zip, non riesco a capire come si installa però :gesty:


Ti basta seguire, sono pochi comandi da terminale, una qualunque guida che trovi in rete. Vedi qui se hai ubuntu http://www.sparkblog...a-ubuntu-12-04/

Dopo di che ti basta scaricare un qualunque Ide ed iniziare. Personalmente consiglio Eclipse.

Modificata da Elnor, 21 September 2012 - 09:51 AM.


#10
pio ping 34

pio ping 34
  • Super Eye Fan

  • StellettaStellettaStellettaStelletta
  • Gruppo: Utente Pro
  • Messaggi: : 2074
si vanno bene tutti..
secondo me eclipse pero' e' leggermente piu' da "esperti" (e per questo molto piu' versatile)

con netbeans non ti devi preoccuare di nulla (o quasi ) per quanto riguarda java e sei da subito pronto a scrivere e testare programmi,
cioe' ti scarichi netbeans e lui ti scarica e configura automaticamente da solo l'ultimo jdk disponibile..

per eclipse ci sono tantissime versioni di partenza (che poi possono essere integrate)
e per un neofita potrebbe essere spiazzante.

addirittura potresti fare tutto a mano (invece che usare l'ide usare: usi blocco note per scrivere il programma (e lo salvi con un nome tipo nome_file.java )
e poi da riga di comando scrivi javac nome_file.java
e vedere se il programma compila,
comunque se non hai esperienza di compilazione, e di riga comando
utilizzare un ide rimane la cosa piu' semplice e immediata.. :sisi:

/*******/

Diario di sviluppo #2

ho deciso che i programmi per eseguire i test sulla rete, si scambieranno pacchetti UDP, almeno si levano complicazioni inutili, che infastidiscono e basta. Inoltre per rendere il codice di piu' facile l'interpretazione del codice, ognivolta che i programmi devono scambiarsi dati attraverso la rete, i dati che si passano sono stringhe di testo:
in realta' questo e' uno spreco di risorse, pero' aiuta a capire cosa sto facendo.

quando due programmi si scambiano dati, si cerca di mettere i dati che si scambiano nella forma piu' compatta possibile, per non sovraccaricare troppo la rete e non occupare troppe risorse.

piccolo esempio(semplice semplice):

un programma A vuole comunicare ad un altro programma B che la temperatura ambiente e' 37 gradi

di solito succede che
A invia solo il numero 37(con una particolare codifica), e B sa che 37 sono i gradi della stanza

se invece A adottasse il metodo che ho usato io, invierebbe a B la frase "A invia a B la teperatura 37 gradi prensente nella stanza "

Comunque ormai manca solo il programma di controllo e gestione e poi vedo se quello che ho scritto ha un senso oppure no :sisi:

Modificata da pio ping 34, 21 September 2012 - 11:41 AM.


#11
kracaos

kracaos
  • Super Eye Fan

  • StellettaStellettaStellettaStelletta
  • Gruppo: Utente Pro
  • Messaggi: : 1582
non so per quale motivo ma dal terminale non sono riuscito a scaricare i pacchetti, ho quindi scaricato un file zip, jdk-7u7-linux-i586.tar.gz, però non capisco come fare ad installare java :D

ma javac è compreso nel jdk vero? :angel:

#12
pio ping 34

pio ping 34
  • Super Eye Fan

  • StellettaStellettaStellettaStelletta
  • Gruppo: Utente Pro
  • Messaggi: : 2074
hai scaricato il codice sorgente? secondo me se hai ubuntu
ti conviene installare tutto con sudo apt-get install java, sul forum di ubuntu dovrebbero esserci delle guide

#13
kracaos

kracaos
  • Super Eye Fan

  • StellettaStellettaStellettaStelletta
  • Gruppo: Utente Pro
  • Messaggi: : 1582
eh ma non funziona.... conosco il comando sudo apt-get install ma quando cerco di usarlo con java mi dà errore, però in compenso ho scaricato il jdk in formato zip (peso 92 MB circa) e il problema sta nel fatto che non so cosa farci con questo file zip, cioè si può usare per installare java, ma non so come farlo...

#14
pio ping 34

pio ping 34
  • Super Eye Fan

  • StellettaStellettaStellettaStelletta
  • Gruppo: Utente Pro
  • Messaggi: : 2074
qui c'e' la guida..
http://shinephp.com/...dk-7-on-ubuntu/

una volta che installi il jdk devi linkare le librerie sull'ide che usi..

se ci riesci acquisci un po' di esperienza con linux, ma imho se il tuo interesse e' scrivere da subito qualche riga di codice
la via piu' veloce e' quella di scaricarsi netbeans o dai repository ufficiali o diretamente dal sito oracle..

Modificata da pio ping 34, 21 September 2012 - 04:09 PM.


#15
Guest_LyotoeYe

Guest_LyotoeYe
  • Gruppo: Ospiti
I due diari di sviluppo e la piccola miniguida pratica di java mettila in prima pagina ;) , cosi uno sa dove andare a leggere e non deve cercare alla ceca tra i commenti!

Cosi la prima pagina la facciamo diventare più ampia e a 360 gradi




Leggono questa discussione 0 utenti

0 utenti, 0 ospiti, 0 utenti anonimi

Logo