Dsy Network www | forum | my | didattica | howto | wiki | el goog | stats | blog | dona | rappresentanti
Homepage
 Register   Calendar   Members  Faq   Search  Logout 
.dsy:it. : Powered by vBulletin version 2.3.1 .dsy:it. > Didattica > Corsi N - Z > Reti di calcolatori > [ESERCIZIO] Chat Java
Pages (3): [1] 2 3 »   Last Thread   Next Thread
Author
Thread    Expand all | Contract all    Post New Thread    Post A Reply
Collapse
futurbaggio
U Frikkettone

User info:
Registered: Feb 2003
Posts: 774 (0.10 al dì)
Location: Foggia
Corso: TIC
Anno: 1° Magistrale
Time Online: 13 Days, 16:44:00: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged
[ESERCIZIO] Chat Java

Ecco il mio codice, se a qualcuno va di confrontarlo (sperando che l'indentazione resti):

import java.io.*;
import java.net.*;

class Client{
String testo;
InputStreamReader reader;
BufferedReader myInput;
Socket s;
OutputStream NetOut;

public Client(String host, int porta){
try{
reader = new InputStreamReader (System.in);
myInput = new BufferedReader (reader);
s = new Socket(host, porta);
NetOut = s.getOutputStream();
} catch(Exception e) {
System.out.println("Errore nell'inizializzazione del Client: "+ e.getMessage() );
System.exit(-1);
}
}

public void disconnetti(){
try {
s.close();
System.out.println("Alla prossima chattata!");
System.exit(-1);
} catch(Exception e) {
System.out.println("Errore nella chiusura della connessione");
System.exit(-1);
}
}

public void invia(){
try {
for (int i=0; i < testo.length(); i++) {
NetOut.write((int)testo.charAt(i));
}
if(testo.equals("quit\n")) disconnetti();
} catch(Exception e) {
System.out.println("Errore nell'invio dei dati");
System.exit(-1);
}
}

public void scrivi(){
try {
System.out.print("Io scrivo:");
testo = myInput.readLine();
testo = testo + '\n';
invia();
} catch(Exception e) {
System.out.println("Errore nell'inserimento dei dati da tastiera");
System.exit(-1);
}
}
}

class Server{
public boolean connesso;
String testo;
InputStreamReader reader;
BufferedReader myInput;
ServerSocket ss;
Socket s;
InputStream NetIn;

public Server(int porta){
try{
ss = new ServerSocket(porta);
s = ss.accept();
NetIn = s.getInputStream();
connesso = true;
} catch(Exception e) {
System.out.println("Errore nell'inizializzazione del Server");
System.exit(-1);
}
}

public void disconnetti(){
try {
s.close();
ss.close();
System.out.println("Alla prossima chattata!");
System.exit(-1);
} catch(Exception e) {
System.out.println("Errore nella chiusura della connessione");
System.exit(-1);
}
}

public void ricevi(){
testo = "";
int c;
try {
System.out.print("Lui scrive: "+ testo);
while ((c = NetIn.read()) != 10) {
System.out.print((char)c);
testo = testo + (char)c;
}
System.out.println();

if(testo.equals("quit")) disconnetti();
} catch(Exception e) {
System.out.println("Errore nella ricezione dei dati");
System.exit(-1);
}
}
}

class futurbaggio {
public static void main(String[] args){
Client Cli = new Client("127.0.0.1",10000);
Server Ser = new Server(10001);
System.out.println("Benvenuto in chat, non devi sapere nulla se non che la sequenza 'quit', senza apici, ti consente di uscire ;)");

while(true){
Cli.scrivi();
Ser.ricevi();
}
}
}

class roberto {
public static void main(String[] args){
System.out.println("Benvenuto in chat, non devi sapere nulla se non che la sequenza 'quit', senza apici, ti consente di uscire ;)");
Server Ser = new Server(10000);
Client Cli = new Client("127.0.0.1",10001);

while(true){
Ser.ricevi();
Cli.scrivi();
}
}
}

Alcune considerazioni (dubbi), il prof ha utilizzato come codice intero per il termine della ricezione di dati il -1... ma a me il suo stesso codice ha dato problemi, in pratica il server si bloccava restando in attesa di non so cosa... per questo ho considerato il codice 10 che è quello dell'accapo (ogni messaggio inserito infatti viene fatto terminare da '\n'). Qualcuno mi illumina????

Per l'esecuzione va lanciato prima il client roberto e poi futurbaggio... se non riuscite chiedetemi!

Roberto

__________________
E lo sceriffo americano non lo sa / ma quando parla ride tutta la città / vile fellone vieni a singolar tenzone / unza unza umpappà troppe truppe mariscià.
Non ci voleva l'eruzione della lava / e due piccioni si contendono la fava / sposa bagnata, bambina svergognata / la questione è delicata / come bolle la patata.
Basta! E' finita la festa
[L'ovile delle vanità, Folkabbestia]

Last edited by mayetta on 09-10-2004 at 12:20

07-10-2004 00:53
Click Here to See the Profile for futurbaggio Click Here to See the Blog of futurbaggio Click here to Send futurbaggio a Private Message Visit futurbaggio's homepage! Find more posts by futurbaggio Add futurbaggio to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
yeah
.grande:maestro.

User info:
Registered: Nov 2003
Posts: 1644 (0.21 al dì)
Location: Cologno Monzese
Corso: Informatica Magistrale
Anno: II
Time Online: 12 Days, 21:36:41 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Azz! Io l'ho tenuto mooolto più semplice :)

ho un main() da entrambe le parti e poi i prog si chiudono con un bel Ctrl+C ;)

__________________
?

07-10-2004 22:53
Click Here to See the Profile for yeah Click here to Send yeah a Private Message Find more posts by yeah Add yeah to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
X-ICEMAN
The Chosen One

User info:
Registered: Jun 2002
Posts: 332 (0.04 al dì)
Location: Sunnydale
Corso: Comunicazione Digitale
Anno: 2
Time Online: 5 Days, 15:10:20 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

sigh per me è ancora fuori quota :) ho fatto java 2 anni fa non lo ricordo praticamente più :) adesso sto riprendendo.. l'inizio è traumatico :)

__________________
Supervisore di xbox.multiplayer.it

08-10-2004 00:30
Click Here to See the Profile for X-ICEMAN Click here to Send X-ICEMAN a Private Message Visit X-ICEMAN's homepage! Find more posts by X-ICEMAN Add X-ICEMAN to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
mayetta
--

User info:
Registered: Nov 2001
Posts: 1319 (0.16 al dì)
Location:
Corso:
Anno:
Time Online: 32 Days, 23:40:30 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by yeah
Azz! Io l'ho tenuto mooolto più semplice :)

ho un main() da entrambe le parti e poi i prog si chiudono con un bel Ctrl+C ;)


idem ;) e funziona!!!! :ola:

:)

08-10-2004 09:34
Click Here to See the Profile for mayetta Click Here to See the Blog of mayetta Click here to Send mayetta a Private Message Find more posts by mayetta Add mayetta to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Francesko
.illuminato.

User info:
Registered: Apr 2004
Posts: 216 (0.03 al dì)
Location: milano
Corso:
Anno: 3
Time Online: 4 Days, 20:34:26 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

scusate l'ignoranza abissale, ma questi sono programmi che possono essere scritti solo su pc connessi ad una rete? cioè io non mi posso mettere a casa mia a farli, vero?

08-10-2004 10:20
Click Here to See the Profile for Francesko Click here to Send Francesko a Private Message Find more posts by Francesko Add Francesko to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
yeah
.grande:maestro.

User info:
Registered: Nov 2003
Posts: 1644 (0.21 al dì)
Location: Cologno Monzese
Corso: Informatica Magistrale
Anno: II
Time Online: 12 Days, 21:36:41 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Francesco:
forunatamente sì!

Lanciato il server, tutto ok, questo è in ascolto su una porta del pc locale (sul quale è stato lanciato).

Nel codice del client c'è:
s = new Socket("localhost",4500);

che connette il socket 's' alla macchina 'localhost', ovvero il pc su cui lo si ha lanciato (che in questo caso è lo stesso che sta eseguendo il codice del server).

Volendo usare un pc in rete, 'localhost' andrà sostituito con l'idirizzo IP della macchina remota.

In questo caso però, localhost (che equivale all'IP 127.0.0.1) permette di usare client e server sulla stessa macchina.

__________________
?

08-10-2004 12:20
Click Here to See the Profile for yeah Click here to Send yeah a Private Message Find more posts by yeah Add yeah to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
CUBA
.precettore.

User info:
Registered: Mar 2003
Posts: 88 (0.01 al dì)
Location: Seveso (MI)
Corso: TI.COM
Anno: 2
Time Online: 21:10:53 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged
Red face Esercizio chat base base base

Ho creato un file java cha_1 dove ho un server1 e un client1 e un file chat_2 dove ho un client2 e un server2.

La welcomeSocket del file chat_1 riceve la connessione del client2, e dopo avergli mandato la stringa, si chiude la connessione da entrambe le parti. La welcomeSocket del file chat_1, rimane in ascolto.

A questo punto il codice chat_2 arriva alla creazione della sua WelcomeSocket e il codice chat_1 arriva alla creazione del client1 praticamente, le parti si invertono.

Il server2 riceve la connessione del client1 e dopo avergli mandato la stringa, le socket vengono chiuse. La WelcomeSocket del file chat_2, rimane in ascolto.


Spero sia l'interpretazione giusta, praticamente i file chat_1 e chat_2 simulano la presenza di due macchine una che è prima server e poi client e l'altra che è prima client e poi server.

Se volete posto il codice...Ciauz

09-10-2004 12:35
Click Here to See the Profile for CUBA Click here to Send CUBA a Private Message Visit CUBA's homepage! Find more posts by CUBA Add CUBA to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
mayetta
--

User info:
Registered: Nov 2001
Posts: 1319 (0.16 al dì)
Location:
Corso:
Anno:
Time Online: 32 Days, 23:40:30 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

io credo che lo scopo dell'esercizio fosse dimostrare di aver capito come far comunicare un client e un server potenzialmente all'infinito (interrompendoli con un semplice CTRL+c) e farli agire in modo alternato: client scrive sulla socket a server, server legge quello che gli manda client, server scrive sulla socket a client, client legge quello che gli manda server, etc....

il tutto reso un pochino più complicato dal fatto che le stringhe che i due si passano vengono prese dall'input di tastiera.

la mia soluzione:

client
server

Last edited by mayetta on 09-10-2004 at 12:57

09-10-2004 12:48
Click Here to See the Profile for mayetta Click Here to See the Blog of mayetta Click here to Send mayetta a Private Message Find more posts by mayetta Add mayetta to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
futurbaggio
U Frikkettone

User info:
Registered: Feb 2003
Posts: 774 (0.10 al dì)
Location: Foggia
Corso: TIC
Anno: 1° Magistrale
Time Online: 13 Days, 16:44:00: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged
Re: Esercizio chat base base base

Originally posted by CUBA
Se volete posto il codice...Ciauz


Non so se hai dato un occhio al mio codice ma io praticamente non ho mai fatto chiudere le socket, alternandone apertura e chiusura... dovrebbe essere una sorta di ottimizzazione delle risorse ma è una mia deduzione che non ha pratici riscontri :twisted:
Cmq postalo, a me interessa vederlo...

Roberto

PS. Nessuno l'ha fatta multiutente?

__________________
E lo sceriffo americano non lo sa / ma quando parla ride tutta la città / vile fellone vieni a singolar tenzone / unza unza umpappà troppe truppe mariscià.
Non ci voleva l'eruzione della lava / e due piccioni si contendono la fava / sposa bagnata, bambina svergognata / la questione è delicata / come bolle la patata.
Basta! E' finita la festa
[L'ovile delle vanità, Folkabbestia]

09-10-2004 19:56
Click Here to See the Profile for futurbaggio Click Here to See the Blog of futurbaggio Click here to Send futurbaggio a Private Message Visit futurbaggio's homepage! Find more posts by futurbaggio Add futurbaggio to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
DeepBlue
tired guy

User info:
Registered: Sep 2003
Posts: 4258 (0.55 al dì)
Location: CSN
Corso: Info tlc
Anno:
Time Online: 52 Days, 8:40:31 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged
Re: Re: Esercizio chat base base base

Originally posted by futurbaggio
Non so se hai dato un occhio al mio codice ma io praticamente non ho mai fatto chiudere le socket, alternandone apertura e chiusura... dovrebbe essere una sorta di ottimizzazione delle risorse ma è una mia deduzione che non ha pratici riscontri


E' ottimizzata solo se riutilizzi sempre le stesse socket. Aprire una socket significa impiegare memoria, quindi aprire n socket significa utilizzare m byte di memoria.

PS. Nessuno l'ha fatta multiutente?

Visto che non seguo il corso, dal quel poco che ho potuto capire dai vostri post, il docente chiedeva la realizzazione di un sistema bi-utente, ovvero di un client e di un server che comunicano fra loro.

Per realizzare una chat multi-utente è necessaria l'esistenza di un server che accetti connessioni e che replichi a tutti i client i messaggi che riceve o che li indirizzi al solo utente destinatario. Dopo due lezioni mi sembra troppo ;)

__________________
~ get Debian! ~ get FreeBSD! ~ get OpenBSD! ~

10-10-2004 13:31
Click Here to See the Profile for DeepBlue Click Here to See the Blog of DeepBlue Click here to Send DeepBlue a Private Message Find more posts by DeepBlue Add DeepBlue to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
m@cCo
Steek Huzzee

User info:
Registered: Sep 2003
Posts: 936 (0.12 al dì)
Location: Trecate - Novara - Piedmont - Italy
Corso: Computer Science (magistrale)
Anno: II
Time Online: 9 Days, 0:20:33 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Scusate ma come va intesa l'alternanza?
Il server può rispondere al client? O semplicemente restituisce la stessa stringa inserita dal client?

Ciao

10-10-2004 17:26
Click Here to See the Profile for m@cCo Click here to Send m@cCo a Private Message Find more posts by m@cCo Add m@cCo to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
m@cCo
Steek Huzzee

User info:
Registered: Sep 2003
Posts: 936 (0.12 al dì)
Location: Trecate - Novara - Piedmont - Italy
Corso: Computer Science (magistrale)
Anno: II
Time Online: 9 Days, 0:20:33 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Ma l'alternanza viene eseguita automaticamente dalla gestione delle seocket di java?
Se io client scrivo il server rimane in attesa fino a che il canale non viene chiuso, e allo stesso modo il client rimane in attesa del server?

Mi riferisco all'esempio di mayetta.

Ciao

10-10-2004 17:47
Click Here to See the Profile for m@cCo Click here to Send m@cCo a Private Message Find more posts by m@cCo Add m@cCo to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
mayetta
--

User info:
Registered: Nov 2001
Posts: 1319 (0.16 al dì)
Location:
Corso:
Anno:
Time Online: 32 Days, 23:40:30 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

il prof l'ha spiegato così:

client chiede connessione
server accetta e aspetta
client scrive per primo e va avanti così:

client -> server : ciao
server -> client: ciao a te
client -> server: ...
....

:)

10-10-2004 18:15
Click Here to See the Profile for mayetta Click Here to See the Blog of mayetta Click here to Send mayetta a Private Message Find more posts by mayetta Add mayetta to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
0m4r
.grande:maestro.

User info:
Registered: Mar 2002
Posts: 7287 (0.87 al dì)
Location: Düsseldorf (DE)
Corso:
Anno: ESAMI FINITI
Time Online: 49 Days, 0:42:50 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged
Re: [ESERCIZIO] Chat Java

Originally posted by futurbaggio
Ecco il mio codice, se a qualcuno va di confrontarlo (sperando che l'indentazione resti):

code:
import java.io.*; import java.net.*; class Client{ String testo; InputStreamReader reader; BufferedReader myInput; Socket s; OutputStream NetOut; public Client(String host, int porta){ try{ reader = new InputStreamReader (System.in); myInput = new BufferedReader (reader); s = new Socket(host, porta); NetOut = s.getOutputStream(); } catch(Exception e) { System.out.println("Errore nell'inizializzazione del Client: "+ e.getMessage() ); System.exit(-1); } } public void disconnetti(){ try { s.close(); System.out.println("Alla prossima chattata!"); System.exit(-1); } catch(Exception e) { System.out.println("Errore nella chiusura della connessione"); System.exit(-1); } } public void invia(){ try { for (int i=0; i < testo.length(); i++) { NetOut.write((int)testo.charAt(i)); } if(testo.equals("quit\n")) disconnetti(); } catch(Exception e) { System.out.println("Errore nell'invio dei dati"); System.exit(-1); } } public void scrivi(){ try { System.out.print("Io scrivo:"); testo = myInput.readLine(); testo = testo + '\n'; invia(); } catch(Exception e) { System.out.println("Errore nell'inserimento dei dati da tastiera"); System.exit(-1); } } } class Server{ public boolean connesso; String testo; InputStreamReader reader; BufferedReader myInput; ServerSocket ss; Socket s; InputStream NetIn; public Server(int porta){ try{ ss = new ServerSocket(porta); s = ss.accept(); NetIn = s.getInputStream(); connesso = true; } catch(Exception e) { System.out.println("Errore nell'inizializzazione del Server"); System.exit(-1); } } public void disconnetti(){ try { s.close(); ss.close(); System.out.println("Alla prossima chattata!"); System.exit(-1); } catch(Exception e) { System.out.println("Errore nella chiusura della connessione"); System.exit(-1); } } public void ricevi(){ testo = ""; int c; try { System.out.print("Lui scrive: "+ testo); while ((c = NetIn.read()) != 10) { System.out.print((char)c); testo = testo + (char)c; } System.out.println(); if(testo.equals("quit")) disconnetti(); } catch(Exception e) { System.out.println("Errore nella ricezione dei dati"); System.exit(-1); } } } class futurbaggio { public static void main(String[] args){ Client Cli = new Client("127.0.0.1",10000); Server Ser = new Server(10001); System.out.println("Benvenuto in chat, non devi sapere nulla se non che la sequenza 'quit', senza apici, ti consente di uscire ;)"); while(true){ Cli.scrivi(); Ser.ricevi(); } } } class roberto { public static void main(String[] args){ System.out.println("Benvenuto in chat, non devi sapere nulla se non che la sequenza 'quit', senza apici, ti consente di uscire ;)"); Server Ser = new Server(10000); Client Cli = new Client("127.0.0.1",10001); while(true){ Ser.ricevi(); Cli.scrivi(); } } }


Alcune considerazioni (dubbi), il prof ha utilizzato come codice intero per il termine della ricezione di dati il -1... ma a me il suo stesso codice ha dato problemi, in pratica il server si bloccava restando in attesa di non so cosa... per questo ho considerato il codice 10 che è quello dell'accapo (ogni messaggio inserito infatti viene fatto terminare da '\n'). Qualcuno mi illumina????

Per l'esecuzione va lanciato prima il client roberto e poi futurbaggio... se non riuscite chiedetemi!

Roberto


Off-Topic:
usa i tag [ code ] e [/ code ] (senza spazi ;P)

__________________
http://www.twitter.com/0m4r

10-10-2004 18:43
Click Here to See the Profile for 0m4r Click Here to See the Blog of 0m4r Click here to Send 0m4r a Private Message Find more posts by 0m4r Add 0m4r to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
yeah
.grande:maestro.

User info:
Registered: Nov 2003
Posts: 1644 (0.21 al dì)
Location: Cologno Monzese
Corso: Informatica Magistrale
Anno: II
Time Online: 12 Days, 21:36:41 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Ecco la mia versione di questo esercizio:

Server - Chat_s.java

code:
import java.net.*; import java.io.*; class Chat_s { public static void main(String args[]) { int c; String localPrompt = "Local> ", // richiesta di input remotePrompt = "Remote> "; // visualizzazione dei caratteri ricevuti ServerSocket listener; // socket di accettazione delle connessioni Socket established; // socket della connessione accettata InputStream sock_in; // Stream di input del Socket OutputStream sock_out; // Stream di output del Socket System.out.println("Server avviato"); try { // Apertura del socket di ascolto listener = new ServerSocket(6000, 300); established = listener.accept(); //connessione accettata listener.close(); //Chiusura del socket di ascolto, non più necessario sock_in = established.getInputStream(); sock_out = established.getOutputStream(); while(true) { /* * Visualizzazione dei caratteri ricevuti * fino alla fine del messaggio, caratterizzato * dal codice del tasto [INVIO] */ System.out.print(remotePrompt); while((c = sock_in.read()) != 13) System.out.print((char) c); // Ritorno a capo System.out.println(); /* * Visualizzazione della richiesta di input * e lettura e invio dei caratteri fino * alla pressione di [INVIO] */ System.out.print(localPrompt); while((c = System.in.read()) != 10) sock_out.write((int) c); } //established.close(); // codice irraggiungibile a causa del while(true) } catch(IOException e) {} } }


Client - Chat_c.java
code:
import java.net.*; import java.io.*; class Chat_c { public static void main(String args[]) { int c; String localPrompt = "Local> ", // Richiesta di input remotePrompt = "Remote> "; // Visualizzazione dei caratteri ricevuti Socket connection; // Socket di connessione col server InputStream sock_in; // Stream di input del Socket OutputStream sock_out; // Stream di output del Socket System.out.println("Client avviato"); try { // Tentativo di connessione col server connection = new Socket("localhost", 6000); sock_in = connection.getInputStream(); sock_out = connection.getOutputStream(); while(true) { /* * Visualizzazione della richiesta di input * e lettura e invio dei caratteri fino * alla pressione di [INVIO] */ System.out.print(localPrompt); while((c = System.in.read()) != 10) sock_out.write((int) c); /* * Visualizzazione dei caratteri ricevuti * fino alla fine del messaggio, caratterizzato * dal codice del tasto [INVIO] */ System.out.print(remotePrompt); while((c = sock_in.read()) != 13) System.out.print((char) c); // Ritorno a capo System.out.println(); } // connession.close(); // codice irraggiungibile a causa del while(true) } catch(IOException e) {} } }


:)

Se vi doveste chiedere: "Ma come, il ciclo di input termina con la lettura di 10 e il ciclo di ricezione dal socket termina col 13?"

Il tasto INVIO equivale a 2 codici ascii, 13 e 10 (carriage return e line feed, o il contrario, non ricordo). Quando si preme INVIO, il carattere 10 viene inviato sulla connessione e il 13 termina il ciclo.

Quindi, dall'altra parte, il messaggio ricevuto terminerà con il 10 :)

__________________
?

11-10-2004 20:24
Click Here to See the Profile for yeah Click here to Send yeah a Private Message Find more posts by yeah Add yeah to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
All times are GMT. The time now is 15:55.    Post New Thread    Post A Reply
Pages (3): [1] 2 3 »   Last Thread   Next Thread
Show Printable Version | Email this Page | Subscribe to this Thread | Add to Bookmarks

Forum Jump:
Rate This Thread:

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
 

Powered by: vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento | Licenze | Thanks | Syndacate
Pagina generata in 0.058 seconds (70.76% PHP - 29.24% MySQL) con 29 query.