Bonjour
voila je viens de découvrir ce forum. je désire utiliser ce programme pour un serveur mais eclipse me demande de définir la methode t.start. Je ne comprend pas pourquoi car c'est une méthode déja défini dans la classe socket.J'ai beau regarder la documentation sur les librairies java mais je ne trouve pas la solution, je pense que sa vient d'une erreur de syntaxe. Voila mon bout de programme :lol:
import java.net.*;
import java.io.*;
public class TestServeurThreadTCP {
final static int port = 9632;
private Socket socket;
public static void main(String[] args) {
try {
ServerSocket socketServeur = new ServerSocket(port);
while (true) {
Socket socketClient = socketServeur.accept();
TestServeurThreadTCP t = new TestServeurThreadTCP(socketClient);
t.start();// c'est a cette endroit que eclipse veut que je definisse la méthode start :shock:
}
} catch (Exception e) {
e.printStackTrace();
}
}
Bienvenue :)
Non, il n'y pas la moindre méthode start dans la classe Socket
Non plus.
Donc pas de méthode start dans la classe Socket. je pense que, voulant écouter les sockets entrant dans un Thread, tu confonds classe Thread et classe Socket. Ta classe TestServeurThreadTCP doit être un Thread. Pour cela tu dois soit implementer java.lang.Runnable, doit dériver de Thread.
Disons que tu dérives de Thread:
TestServeurThreadTCP extends Thread
Et là, tu as ta méthode start par héritage.
Mais attention ce n'est pas tout. Tu vas aussi devoir redéfinir la méthode run. Et aussi réorganiser tout ton code, qui pour la plus grand partie ne doit pas être dans main. Dans run tu mets ta boucle while mais SANS t.start() dedans :lol: t.start tu le mets ailleurs. Bref tu essaies de
réorganiser ton code et si ça ne va pas, tu reviens nous voir :)
C'est un exercice d'école ça non ? ;)