Voici le code du serveur et le client écrit pour Python 3Connect() fonction en Python ne fonctionne pas sous Linux
Code Serveur:
import sys
from socket import socket, gethostbyname, AF_INET, SOCK_STREAM
PORT_NUMBER = 5060
SIZE = 1024
hostName = gethostbyname('0.0.0.0')
recvSocket = socket(AF_INET, SOCK_STREAM)
recvSocket.bind((hostName, PORT_NUMBER))
recvSocket.listen(5)
print("Listening for client...")
(conn,addr)=recvSocket.accept()
print ("Test server listening on port {0}\n".format(PORT_NUMBER))
print("Connected to client at address {0}\n".format(addr))
print("Connection is ",conn)
Code client:
import sys
from socket import socket,AF_INET,SOCK_STREAM,gethostbyname
hostname=gethostbyname('0.0.0.0')
print ("Creating")
sendsocket=socket(AF_INET,SOCK_STREAM)
print ("Connecting socket")
sendsocket.connect(('192.168.4.39',5060))
print ("connected")
data=input("Enter value")
sendsocket.sendto(data.encode('utf-8'),(SEND_IP,SEND_PORT))
maintenant la situation à laquelle je suis confronté est la suivante:
1er Scénario o
code serveur est en cours d'exécution sur un système Windows et le code client est en cours d'exécution sur un système Linux
Résultat: code client obtient bloqué après l'impression "Connexion socket"
2e scénario
Le code du serveur s'exécute sur un système Linux et le code client s'exécuteSystèmede Windows
Résultat: Obtention d'une sortie comme prévu.
Pourquoi ce comportement se produit-il? La fonction connect() a-t-elle un problème ou le code rencontre-t-il un problème?
REMARQUE: Les systèmes serveur et client se trouvent sur le même réseau. 192.168.4.39 est l'adresse IP où le code du serveur est en cours d'exécution.
Êtes-vous en cours d'exécution à la fois le code Windows et Linux ** à la même adresse IP **? Si non, alors pourquoi essayez-vous de vous connecter à la même machine dans le 1er scénario? –
Et si vous * l'exécutez à la même adresse IP, vous ne pouvez pas attribuer la même adresse IP à deux entités. –
Je n'ai pas bien compris votre question, mais je vais vous donner l'information indépendamment Le code du serveur est en cours d'exécution sur IP 192.168.4.39 Le code client fonctionne sur IP 192.168.4.57 –