servidor - cómo conocer el puerto del cliente y la dirección IP en el programa socket del cliente en java
sockets en java enviar y recibir (2)
Creé una comunicación múltiple cliente-servidor en Java usando socket. tengo un solo servidor y un cliente Quiero probar mi programa con múltiples clientes. Estoy planeando crear un simulador que cree dinámicamente ip y puerto ... para eso solo quiero saber cómo configurar el puerto y la IP del cliente en el programa de socket. ¿Alguien puede ayudarme? Uso InetAddress.getByName para obtener la dirección del cliente.
public Socket(Proxy proxy)
{
if (proxy != null && proxy.type() == Proxy.Type.SOCKS)
{
SecurityManager security = System.getSecurityManager();
InetSocketAddress epoint = (InetSocketAddress) proxy.address();
if (security != null) {
if (epoint.isUnresolved())
epoint = new InetSocketAddress(epoint.getHostName(), epoint.getPort());
if (epoint.isUnresolved())
security.checkConnect(epoint.getHostName(),
epoint.getPort());
else
security.checkConnect(epoint.getAddress().getHostAddress(),
epoint.getPort());
}
impl = new SocksSocketImpl(proxy);
impl.setSocket(this);
} else {
if (proxy == Proxy.NO_PROXY) {
if (factory == null) {
impl = new PlainSocketImpl();
impl.setSocket(this);
} else
setImpl();
} else
throw new IllegalArgumentException("Invalid Proxy");
}
}
Prueba esto para
clientString = "Remote client: " + socket.getRemoteSocketAddress().toString().substring(1);
Sencillo. Para crear la IP del cliente y el puerto, debe pasar los siguientes parámetros en el programa principal.
solo intenta así
java Client localhost 1112 //To run
(ip: localhost
port: 1112)
// Code for main
public static void main(String[] args)
{
try
{
ipAdd=args[0];
portNo=Integer.parseInt(args[1]);
Client s=new Client();
}
catch (Exception e)
{
System.out.println(e);
}
}