client serveur par socket
bonjour a tous,
j'ai développé un serveur et un client pour un jeu, mais j'ai un probleme, je veux limiter le nombre de connexions de client et quand les clients sont tous prets, empecher un nouveau client de se connecter.
code du client pour se connecter:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
public int connexion ( )
{
try
{
//socket = new Socket ( "5.161.238.1" , port ) ;
socket = new Socket ( "localhost" , port ) ;
socket.setSoTimeout ( 5000 ) ;
ecriture_objet = new ObjectOutputStream ( socket.getOutputStream ( ) ) ;
lecture_objet = new ObjectInputStream ( socket.getInputStream ( ) ) ;
ecriture_texte = new PrintWriter ( new BufferedWriter ( new OutputStreamWriter ( socket.getOutputStream ( ) ) ) , true ) ;
lecture_texte = new BufferedReader ( new InputStreamReader ( socket.getInputStream ( ) ) ) ;
}
catch ( Exception e )
{
return 0 ;
}
return 1 ;
} |
code du serveur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
public void lancement ( )
{
try
{
try
{
s = new ServerSocket ( port ) ;
fenetre.get_lancement ( ).setText ( "Serveur ON" ) ;
}
catch ( Exception e )
{
fenetre.get_lancement ( ).setText ( "Serveur OFF" ) ;
}
while ( fin == 0 )
{
if(nbr_connexions <= 9)
{
if ( bloc == 0 )
{
soc = s.accept ( ) ;
if ( soc != null )
{
Connexion c = new Connexion ( this , soc , nbr_connexions ) ;
c.start ( ) ;
nbr_connexions ++ ;
}
}
}
}
}
catch ( Exception e )
{
System.out.println ( "erreur Serveur [lancement] : " + e ) ;
}
try
{
soc.close ( ) ;
s.close ( ) ;
}
catch ( Exception e )
{
System.out.println ( "erreur Serveur [lancement] : " + e ) ;
}
} |
donc comme je veux on ne peut pas faire plus de 10 connexions, et quand j'ai 2 clients qui on envoyer un certain message au serveur, son attribut bloc passe a 1,mais un nouveau client peut se connecter ce qui n'est pas normal.
voila si vous pouviez m'aider.
merci a tous