SocketFactory : java.net.BindException
Bonjour a tous !
J'utilise la classe RExecClient du package com.oroinc (com.oroinc.io.SocketInputStreame et com.oroinc.net.bsd.RExecClient) pour me connecter sur une machine cible via mon programme.
Le but du programme et d'executer un script sur des hosts different a partir de la machine cible. Lorsque je me connecte sur cette machine via PuTTy, je lance a la main la commande ls par exemple, cela fonctionne. Via mon prorgramme java j'obtiens :
Code:
1 2 3 4 5 6 7 8 9
| java.net.BindException: Cannot assign requested address
at gnu.java.net.PlainSocketImpl.bind(libgcj.so.70)
at java.net.Socket.bind(libgcj.so.70)
at java.net.Socket.<init>(libgcj.so.70)
at java.net.Socket.<init>(libgcj.so.70)
at com.oroinc.net.DefaultSocketFactory.createSocket(DefaultSocketFactory.java)
at RClient.connect(RClient.java:85)
at RClient.connect(RClient.java:104)
at Main.main(Main.java:82) |
Mon code Java pour me connecter de la machine cible aux differents hosts est :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| public void connect(InetAddress host, int port, InetAddress localAddr)
throws SocketException, BindException, IOException
{
int localPort;
localPort = MAX_CLIENT_PORT;
for (localPort = MAX_CLIENT_PORT; localPort >= MIN_CLIENT_PORT; --localPort)
{
System.out.print(" "+localPort);
try
{
_socket_ = _socketFactory_.createSocket(host, port, localAddr, localPort);
}
catch (SocketException e)
{
e.printStackTrace();
continue;
}
break;
}
_connectAction_();
} |
Les parametres de la fonction semblent corrects, je ne vois pas ou est le probleme ! (surtout que comme je le disais a la main via rsh ca MARCHE)
Help please !