Je suis débutant en Java et j'ai pour mission de construire une application Java de partage de fichiers P2p. J'ai commencé par créer un serveur et un client. Le client peut envoyer des messages au serveur et le serveur répond. Je crois que la prochaine étape devrait être l'insertion du Thread dans la classe du serveur. J'ai lu tout à son sujet et essayé le bourgeon je ne peux tout simplement pas le retirer. J'espère que quelqu'un peut m'aider. est classe serveur ici:Comment ajouter du fil à mon serveur?
import java.net.*;
import java.io.*;
import java.util.*;
public class Server {
private static ServerSocket serverskiSoket;
private final static int PORT = 3334;
public static void main(String[] args) {
System.out.println("Server se povezuje na port: "+PORT);
try {
serverskiSoket = new ServerSocket(PORT);
System.out.println("Server aktivan: " + serverskiSoket);
System.out.println("Ceka se klijent ...");
} catch (IOException ex) {
String dodatnaPoruka = ex.getMessage().toString();
if (dodatnaPoruka.equals("Address already in use: JVM_Bind"))
System.out.println("Nemoguce je povezati se na port "+ PORT +" jer je zauzet od strane drugog servera.");
System.exit(1);
}
do {
handleClient();
} while(true);
}
private static void handleClient() {
Socket link = null;
try {
link = serverskiSoket.accept();
System.out.println("Klijent povezan: " + link);
Scanner ulazniTok = new Scanner(link.getInputStream());
PrintWriter izlazniTok = new PrintWriter(link.getOutputStream(), true);
int brojPoruka = 0;
String poruka = ulazniTok.nextLine();
while(!poruka.equals("zatvori")) {
System.out.println("Klijent kaze: " + poruka);
brojPoruka++;
izlazniTok.println("Poruka: " + brojPoruka + ": " + poruka);
poruka = ulazniTok.nextLine();
}
izlazniTok.println(brojPoruka + " poruka poslato.");
} catch (IOException ex) {
ex.printStackTrace();
} finally {
try {
System.out.println("Konekcija se zatvara...");
link.close();
} catch(IOException ioEx) {
System.out.println("Diskonekcija nije moguca! \nRazlog: " + ioEx.getMessage());
System.exit(1);
}
}
}
}
et voici classe Client:
import java.net.*;
import java.io.*;
import java.util.*;
public class Klijent {
private static InetAddress host;
private static final int PORT = 3334;
public static void main(String[] args) {
System.out.println("Povezivanje klijenta u toku. Molim sacekajte...");
try {
host = InetAddress.getLocalHost();
} catch (UnknownHostException ex) {
System.out.println("ID hosta nije pronadjen");
System.exit(1);
}
pristupiServeru();
}
private static void pristupiServeru() {
Socket link = null;
try {
link = new Socket(host, PORT);
String IPAdresa = StringCutter.RaseciString(host.toString());
System.out.println("Povezan na host cija je IP adresa: "+IPAdresa+", a port: "+PORT);
Scanner ulazniTok = new Scanner(link.getInputStream());
PrintWriter izlazniTok = new PrintWriter(link.getOutputStream(), true);
Scanner unosKorisnika = new Scanner(System.in);
String poruka, odgovor;
do {
System.out.println("Unesite poruku: ");
poruka = unosKorisnika.nextLine();
izlazniTok.println(poruka);
odgovor = ulazniTok.nextLine();
if (!odgovor.contains("primljeno"))
System.out.println("Rekli ste serveru: " + odgovor);
else System.out.println(odgovor);
} while (!poruka.equals("zatvori"));
} catch (IOException ex) {
ex.printStackTrace();
} finally {
try {
System.out.println("\n*Zatvara se konekcija sa serverom...*");
link.close();
} catch (IOException ex){
System.out.println("Diskonekcija je nemoguca");
System.exit(1);
}
}
}
}
Par curiosité, vous commencez à partir de zéro pour le P2P ou vous allez utiliser un cadre existant? De toute façon, je voudrais entrer en contact (e-mail est dans le profil). –