2016-11-05 1 views
0

Je travaille maintenant sur un programme simple pour envoyer des fichiers via TCP en utilisant Java. J'ai un problème que je ne suis pas capable de se connecter entre les ordinateurs (je teste l'application en utilisant le routeur et les adresses IP locales).Java - connexion TCP

Je commence par connexion:

sendSocket = new Socket(sendIp, port); 

et je suis en train de recevoir une connexion sur le prochain PC:

servsock = new ServerSocket(port); 
recieveSocket = servsock.accept(); 

où le port est 12222, SendIP est 169.254.5.47 (deuxième ordinateur qui reçoit)

et myIP est 192.168.0.52 (ordinateur qui envoie)

Qu'est-ce que je fais mal?
J'utilise toujours le même port, et je vois sur TCPView que l'application java utilise ce port. Peut-être que j'attribue une mauvaise adresse IP, ou que mon pare-feu bloque en quelque sorte.

Meilleures salutations et merci, Chris

+0

ils ne semblent pas faire partie du même réseau, n'est-ce pas? –

+0

vérifiez d'abord la connectivité avant de tester votre application, car l'expéditeur et l'IP cible ne se trouvent pas dans le même réseau local. Telnet est un outil pratique pour tester cela. –

Répondre

0

Si cela est un réseau Windows, le 169.254.5.47 IP signifie que l'hôte n'a pas obtenu une adresse IP valide du DHCP. Dans un réseau local standard, les deux adresses doivent être sur la même plage de classe C (192.168.0. *).

Vous devez d'abord résoudre ce problème physique avec votre réseau et le tester en utilisant ping (chaque hôte devrait être en mesure d'envoyer une requête ping à l'autre et de voir les réponses).

+0

Vous avez raison. J'ai vérifié les adresses IP sur le routeur et j'ai pu établir la connexion. Le problème est que sur le deuxième ordinateur, l'application java renvoie une adresse IP différente de celle utilisée. J'utilise pour cela: myIp = InetAddress.getLocalHost(). GetHostAddress(); Est-il possible de le réparer? Merci, Chris –