Sotto Windows NT
INDIRIZZO IP | NOME LOGICO |
192.168.61.01 | lab3_001.ing.unibo.it |
192.168.61.02 | lab3_002.ing.unibo.it |
... | |
192.168.61.80 | lab3_080.ing.unibo.it |
Sotto Linux
INDIRIZZO IP NOME LOGICO 192.168.69.101 lab3001 192.168.69.102 lab3002 ... 192.168.69.180 lab3080
Sia sotto Windows XP che sotto Linux:
INDIRIZZO IP NOME LOGICO 192.168.69.21 Lab2n21 192.168.69.22 Lab2n22 ... 192.168.69.99 Lab2n99
E' possibile farle solo sotto Windows, sotto Linux, per problemi che dipendono dall'implementazione della JVM, non è possibile il riuso dello stesso indirizzo.
Per evitare i lunghi tempi di attesa che si hanno lavorando direttamente nella propria home, su un server remoto, conviene operare in locale nel direttorio "/hd/temp", e alla fine della sessione di lavoro copiare sulla home quello che si vuole salvare.
I comandi dell'mtool (mcopy,
ecc.) sono in mutua esclusione con il programma di cui compare l'icona sul
desktop.
Quando si clicca sull'icona "Floppy" di fatto equivale a fare
un "mount". PRIMA di estrarre il floppy é fondamentale
fare "umont" (tasto destro sull'icona e voce "umont"
del menù). Se non si seguono queste regole si possono avere i ben
noti problemi...
Primo utilizzo:
lanciare il programma da linea di comando
/usr/local/JB6/bin/jbuilder
appare una finestra in cui viene
chiesto un codice di licenza; ci sono due opzioni, occorre scegliere la
seconda, che consente di fare il cut&paste della licenza dalla sottostante
finestrina bianca.
Poi occorre visualizzare il file /usr/local/JB6/license.txt, copiarne il
contenuto (selezionandolo e premendo Ctrl+C) e incollarlo (spingendo il
bottone nella finestrella di jbuilder con scritto "paste clipboard").
Infine selezionare finish.
Il programma chiederà se si vuole creare sul desktop l'icona per
il lancio, che ovviamente conviene avere.
Utilizzi successivi:
basta cliccare l'icona sul desktop!
Primo utilizzo:
lanciare il programma da linea di comando
/usr/local/JB8/bin/jbuilder
appare una finestra in cui viene
chiesto un codice di licenza; ci sono due opzioni, occorre scegliere quella
che permette di selezionare l'activation file, poi browse. Il file da selezionare è : /usr/local/JB8/reg127.txt. Infine selezionare finish.
Il programma chiederà se si vuole creare sul desktop l'icona per
il lancio, che ovviamente conviene avere.
Utilizzi successivi:
basta cliccare l'icona sul desktop!
E' installato sotto Linux e Windows XP nel laboratorio nuovo. E' nel path di tutti i profili quindi basta "jedit" da linea di comando. Vedi pagina su uso e configurazione.
é possibile impostarlo in modo da avere il testo colorato che evidenzia le parole chiave del linguaggio, i commenti, ecc. Selezionare il menù Help, poi Options, infine settare Global Font Lock. Vedi dispense sull'uso di e-macs.
E' stata installata una versione con sintax highlighting. Vedi dispense sull'uso di VI.
E' stata installata la versione 3.0 dell'IDE Java.
Per il Lab2 e per Linux in Lab3 si rimanda alle istruzioni.
A volte succede che spariscano le icone sul desktop, il problema é dovuto a informazioni non corrette contenute nel direttorio ".gnome-desktop" (visibile con ls -a); per ripristinarle bisogna cancellarlo dalla propria home e ripetere il login, in questo modo verrà ricreato con i parametri di default
Inserire nella propria HOME, il file ".profile" (creandolo se non esiste) per aggiungere il direttorio corrente a PATH e CLASSPATH; il file deve contenere le seguenti linee:PATH=.:$PATH
CLASSPATH=.:$CLASSPATH
export PATH
export CLASSPATH- Si vedano inoltre per la definizione di variabili di ambiente le seguenti slide su shell di unix.
- ATTENZIONE: il nome del file di profilo dell'utente cambia a seconda della distribuzione, ad esempio, in RedHat il file si deve nominare ".profile", mentre in Gentoo (distribuzione attualmente disponibile nei laboratori) il file deve essere nominato ".bashrc".
Es: il metodo toString() ritorna una stringa diversa da getHostAddress() .
Soluzione: il problema sembra essere dovuto ad un malfunzionamento della classe MulticastSocket, che non riesce a collegarsi ad una interfaccia di rete in modo automatico quando l'elaboratore è scollegato dalla rete, come avviene invece quando l'elaboratore è in rete.
Il problema viene quindi risolto settando l'interfaccia di rete sull'oggetto socket, perciò prima di invocare:
multicastSocket.joinGroup(group);
bisogna impostare l'interfaccia di rete:
// mi procuro l'inetaddress locale
InetAddress netInterface= InetAddress.getByName("localhost");
// imposto l'interfaccia di rete
socket.setInterface(netInterface);
Soluzione: per l'inizializzazione delle matrici, o meglio degli arrray di array, si utilizza la seguente sintassi:
char [][] matrice = {
{'C', 'i', 'a', 'o'},
{'P', 'i', 'p', 'p', 'o'}
};
Contrariamente a quanto il nome di questo metodo potrebbe fare intuire la isConnected NON verifica che una socket sia attualmente connessa al server, ma verifica solamente che l'operazione di connessione con il server sia terminata con successo. Si provi, ad esempio ad invocare la isConnected prima e dopo l'invocazione della close sulla socket, come nel seguente esempio:
Socket sock;
/* Inizializzazione ed utilizzo sock */
...
System.out.println("Sock e' connessa: "+sock.isConnected() );
sock.close();
System.out.println("Sock e' connessa: "+sock.isConnected() );
In XDR non è possibile definire direttamente strutture innestate, ma bisogna sempre passare per definizioni di strutture intermedie.
Ad esempio, rpcgen ritorna errori e non riesce a terminare se invocato su un file .x contenente la definizione della seguente struttura dati:
struct MatriceCaratteri{
char matrice [10][20];
};
Mentre passando per una struttura dati intermedia, si veda l'esempio qui sotto, rpcgen termina correttamente:
struct RigaMatrice{
char riga [20];
};
struct MatriceCaratteri{
RigaMatrice riga [10];
};