CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PYTHON] Socket client/server

orbit844
orbit844
Niveau 9
02 juin 2013 à 21:50:18

Salut, je suis actuellement en train de créer un jeu grâce à Construct Classic (de Scirra) et cet outil permet d'utiliser le python.

Cela me permet à mon jeu d'être joué en multijoueur cela j'ai quelques problèmes avec le système client / serveur

En effet, mon serveur ne peut accepter qu'une seule connection et c'est pas le top puisqu'il devrait pouvoir en accepter autant que possible et envoyer des packets en fonction du packet reçu

Code du serveur :

    1. server.py

from socket import * #import the socket library

    1. let's set up some constants

HOST = '' #we are the host
PORT = 16884 #arbitrary port not currently in use
ADDR = (HOST,PORT) #we need a tuple for the address
BUFSIZE = 4096 #reasonably sized buffer for data

    1. now we create a new socket object (serv)
    2. see the python docs for more information on the socket types/flags

serv = socket( AF_INET,SOCK_STREAM)

    1. bind our socket to the address

serv.bind((ADDR)) #the double parens are to create a tuple with one element
serv.listen(200) #200 is the maximum number of queued connections we'll allow
print 'Waiting for connections...\n'

while True:
conn,addr = serv.accept() #accept the connection
conn.send('#### EU1 SERVER ####')
print '[PACKET] test packet sent !'

Et du côté du client :

    1. client.py

from socket import *

HOST = 'localhost'
PORT = 16884 #our port from before
ADDR = (HOST,PORT)
BUFSIZE = 4096

cli = socket( AF_INET,SOCK_STREAM)
cli.connect((ADDR))

data = cli.recv(BUFSIZE)

System.MessageBox(data, "orbitNetwork",0,0)

cli.close()

J'ai 2 questions :
Comment permettre au serveur de gérer plusieurs connections ET comment faire en sorte que le client soit connecté en permanence ?

Merci d'avance !

dark_drow
dark_drow
Niveau 15
03 juin 2013 à 08:42:24

je suppose que tu te doute que quelque chose cloche dans ton code pour gérer plusieurs clients.
étant donné que le résultat de serv.accept() n'est stocké nul part tu ne gérera qu'un seul client à la fois. Un design classique va être de multi-threader (je t'invite à lire un peu de théorie sur ce sujet si ce n'est pas déja fait) le serveur et de gérer un client par thread.
Plus d'info ici pour tes deux questions http://stackoverflow.com/questions/487229/client-server-programming-in-python

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment