je cherche a avoir 2 PC connecter entre eux par un sockets, le client doit demander au serveur un lien avant de l'ouvrir sur un navigateur. Je suis d'abord aller voir sur les forum python mais d'apres eu le probleme viendrait d'un probleme reseau et qu'il serait donc plus pertinent de poster ma question sur un forum reseau, mais apres avoir bien configurer le "port forwarding" pour le port 80, une autre erreur est apparue, erreur que je n'ai pas reussi a gerer avec eux...
PC faisant office de serveur :
import socket
# Créez un socket serveur
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Lier le socket à une adresse et un port
serversocket.bind(('', 80))
# Commencez à écouter les connexions entrantes
serversocket.listen(5)
while True:
# Acceptez une connexion entrante
(clientsocket, client_address) = serversocket.accept()
print(f"Connexion entrante de {client_address}")
# Lisez la requête HTTP du client
request = clientsocket.recv(1024)
# Répondez avec une réponse HTTP simple
response = "HTTP/1.1 200 OK\r\n\r\nHello, World!"
clientsocket.sendall(response.encode())
# Fermez la connexion avec le client
clientsocket.close()
client :
import subprocess
import sys
try:
import flask
except ImportError:
subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'flask'])
import flask
try:
import webbrowser
except ImportError:
subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'webbrowser'])
import webbrowser
import requests
import webbrowser
server_ip = '82.65.181.45' # Remplacez par l'adresse IP réelle du serveur
response = requests.get(f'http://{server_ip}:80/demande_lien')
if response.status_code == 200:
data = response.json()
lien = data.get('lien')
if lien:
print(f"Ouverture du lien : {lien}")
webbrowser.open(lien)
else:
print("Aucun lien reçu du serveur.")
else:
print(f"Erreur lors de la requête au serveur. Code de statut : {response.status_code}")
l'erreur (toujour du coté du client, coté serveur je ne recois aucune reponse sur le terminal) :
Une exception s'est produite : ConnectTimeout
HTTPConnectionPool(host='82.65.181.45', port=80): Max retries exceeded with url: /demande_lien (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000025304C6CCD0>, 'Connection to 82.65.181.45 timed out. (connect timeout=None)'))
TimeoutError: [WinError 10060] Une tentative de connexion a échoué car le parti connecté n’a pas répondu convenablement au-delà d’une certaine durée ou une connexion établie a échoué car l’hôte de connexion n’a pas répondu
During handling of the above exception, another exception occurred:
urllib3.exceptions.ConnectTimeoutError: (<urllib3.connection.HTTPConnection object at 0x0000025304C6CCD0>, 'Connection to 82.65.181.45 timed out. (connect timeout=None)')
During handling of the above exception, another exception occurred:
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='82.65.181.45', port=80): Max retries exceeded with url: /demande_lien (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000025304C6CCD0>, 'Connection to 82.65.181.45 timed out. (connect timeout=None)'))
Je ne sais pas si c'est utile :-/ , mias voici la derniere reponse sur le forum python :
Un forum réseau serait plus approprié.
Déjà s'il y a un serveur qui répond sur le port 80 de cette adresse IP, un navigateur Web "normal" devrait le joindre (ou reproduire une erreur semblable). Pour le reste, on ne se déplace pas chez vous: impossible de vérifier ce que vous avez fait ou de reproduire quoi que ce soit.
note: avec un problème python, si on reproduit le problème en recopiant quelques lignes de code, on pourra "comprendre" et vous donner une correction. Avec un problème réseau, il y a la box, le pare-feu, la sécurité de l'OS, l'état des ports,... liste non exhaustive de composants/configuration à (re)voir.
Merci par avance :-D
A voir également:
[WinError 10060] Une tentative de connexion a échoué car le
Le serveur à l’adresse 82.65.181.45 met trop de temps à répondre.
Le site est peut-être temporairement indisponible ou surchargé. Réessayez plus tard ;
Si vous n’arrivez à naviguer sur aucun site, vérifiez la connexion au réseau de votre ordinateur ;
Si votre ordinateur ou votre réseau est protégé par un pare-feu ou un proxy, assurez-vous que Firefox est autorisé à accéder au Web.
Trouvez des réponses à vos questions sur la configuration, la sécurité et la résolution de problèmes réseau. Partagez vos expériences et connectez-vous avec d'autres passionnés pour une connectivité optimale et des réseaux performants.
je t'avoue ne pas savoir comment faire pour le pts 1
je suis sur free, et j'ai fait un port forwarding, il me semble standard, (2)
et je retrouve la même erreur après avoir essayer avec le port 8888 (3)
Pour le point 1, tu tapes l'adresse dans la barre d'adresse du navigateur, c'est tout
As tu autorisé les connexions entrantes sur tcp 80 dans le pare-feu du serveur ?
quand je tape l'adresse :
Le délai d’attente est dépassé
Le serveur à l’adresse 82.65.181.45 met trop de temps à répondre.
Le site est peut-être temporairement indisponible ou surchargé. Réessayez plus tard ;
Si vous n’arrivez à naviguer sur aucun site, vérifiez la connexion au réseau de votre ordinateur ;
Si votre ordinateur ou votre réseau est protégé par un pare-feu ou un proxy, assurez-vous que Firefox est autorisé à accéder au Web.
le port forwarding se fait bien vers l'adresse ip locale du serveur?
tu avais fait le port forwarding pour la porte 8888?
j'avais bien fait fait celui pour le port 8888