PROBLEME SOCKET PYTHON POUR LE RESEAU

a marqué ce sujet comme résolu.

bonjour je suis developpeur python j’ai envie de concevoir une application de messagerie instantanne en python. je rencontre un probleme au niveau de la communication reseau. je ne n’arrive pas a etablir une connection avec mon server distant par wifi. je sais pas pourquoi. merci a l’aide.

’###############serveur#######################

On importe les modules utiles au programme

import os import time

On importe les modules relatifs au réseau

import socket import select

hote = "" port = 12800 connexion_principale = socket.socket(socket.AF_INET, socket.SOCK_STREAM) connexion_principale.bind((hote, port)) connexion_principale.listen(5)

Le serveur écoute tous les clients connectés

jusqu’à ce que l’un d’eux valide le début de la partie.

Il n’est ensuite plus possible de s’y connecter.

clients_connectes = [] debut_partie = False

while true:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
connexions_demandees, wlist, xlist = select.select([connexion_principale], [], [], 0.05)
for connexion in connexions_demandees:
    connexion_avec_client, infos_connexion = connexion.accept()
    clients_connectes.append(connexion_avec_client)
for client in clients_connectes:
    client.send(b"start")
clients_a_lire = []

try:
    clients_a_lire, wlist, xlist = select.select(clients_connectes, [], [], 0.05)
except select.error:
    pass
else:
    for client in clients_a_lire:
        msg_recu = client.recv(1024)
        for client in clients_connectes:
            client.send(msg_recu)

Salut,

Ton code est illisible, car tu ne l’as pas correctement formaté et il a été interprété comme Markdown. Je te conseille de l’éditer en suivant la documentation du Markdown.

Par ailleurs, évite d’écrire tes titres de sujets en majuscules. Cela ne les rend pas plus visible et les forums seraient très désagréables si tout le monde faisait de même. ;)

Salut !

Pour appuyer gcodeur, sur Zeste de Savoir le code (en l’occurrence, le Python) doit s’écrire entre accents graves ou backticks (`) suivant la syntaxe suivante :

1
2
3
```python
# Ton code
`` ` (espace devant le dernier backtick à supprimer)

Ce qui donne dans ton cas :

 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
###############serveur#######################
# On importe les modules utiles au programme
import os
import time

# On importe les modules relatifs au réseau
import socket
import select

hote = ""
port = 12800
connexion_principale = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connexion_principale.bind((hote, port))
connexion_principale.listen(5)

# Le serveur écoute tous les clients connectés
# jusqu'à ce que l'un d'eux valide le début de la partie.
# Il n'est ensuite plus possible de s'y connecter.

clients_connectes = []
debut_partie = False

while true:

    connexions_demandees, wlist, xlist = select.select([connexion_principale], [], [], 0.05)
    for connexion in connexions_demandees:
        connexion_avec_client, infos_connexion = connexion.accept()
        clients_connectes.append(connexion_avec_client)
    for client in clients_connectes:
        client.send(b"start")
    clients_a_lire = []

    try:
        clients_a_lire, wlist, xlist = select.select(clients_connectes, [], [], 0.05)
    except select.error:
        pass
    else:
        for client in clients_a_lire:
            msg_recu = client.recv(1024)
            for client in clients_connectes:
                client.send(msg_recu)

En ce qui concerne ton problème, tu n’arrives pas à contacter ton serveur distant par wifi uniquement, ou ça ne marche pas non plus en connexion filaire ? Est-ce que ton serveur distant reçoit une connexion (ça devrait se voir dans les logs), ou pas ?

Je t’avoue que je n’ai jamais codé de sockets, donc je ne peux pas trop t’aider, mais quelques précisions sur ce que tu as déjà essayé de voir/faire ne seraient pas malvenues. ;)

+2 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte