Comment puis-je relier deux sockets au même port sur deux programmes distincts?

J’ai un fichier server.java et un fichier client.python. Lorsque j’essaye ce qui suit, cependant, je reçois une erreur “[Errno 10013] Une tentative d’access à un socket a été effectuée de manière interdite par ses permissions d’access”. Y a-t-il un moyen de contourner ceci? Pourquoi cela arrive-t-il?
client.py

sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) sockRecv = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) sock.bind((socket.gethostname(),4000)) sockRecv.bind((socket.gethostname(),4000 + 1)) 

server.java

 recvSocket = new DatagramSocket(4000); sendSocket = new DatagramSocket(4000 + 1); 

Ce que fait votre code n’a pas de sens pour moi.

L’adresse IP + le port représente un sharepoint terminaison pour la communication par datagramme. Si deux applications pouvaient se lier au même sharepoint terminaison, lesquelles recevraient les paquets envoyés au sharepoint terminaison? L’un d’eux? Les deux?

UDP n’est pas un protocole de diffusion multiple … sauf si vous vous connectez à une adresse IP de multidiffusion.


Basé sur des indices dans votre code (noms de variables), je pense que vous essayez de configurer la transmission de messages entre deux applications sur le même hôte. Si oui, vous devriez faire ceci:

  • L’application A se lie au port P1 et envoie des messages au port P2
  • L’application B se lie au port P2 et envoie des messages au port P1.

Il n’est pas nécessaire que les applications A et B se connectent au même sharepoint fin. c’est-à-dire le même port … pour faire ce que je pense que vous essayez de faire.