✅✅ ✅ ✅ ✅ Todos mis cursos gratuitos 👉 www.pildorasinformaticas.es ✅✅ ✅ ✅ ✅ 🚀 ¿Quieres ejercicios? ¿Quieres más temario? 👉 www.pildorasinformaticas.es/course/java-tutorizado/🚀 🚀 ¿Quieres que te resuelva las dudas de Java? 👉 www.pildorasinformaticas.es/course/java-tutorizado/ 🚀 💥💥💥 Siempre seguiré subiendo cursos gratuitos por aquí. Gracias a todos por seguirme. 💥💥💥
Excelente vídeo, para los que les de error, solución : a la hora de crear el socket en el cliente no escriban la ip si no lo siguiente: Socket miSocket = new Socket(InetAddress.getLocalHost(), 9999);
Gracias, llevaba un rato mirando porque no me salían los mensajes en el servidor y aparentemente la IP que escribí no funcionaba o no sé, pero gracias capo
te sigo desde el primer vídeo, gracias a ti he podido avanzar mucho, eres mas maestro para que mis propios maestros, muchas gracias por lo que haces Dios te bendiga enormemente
Hola Juan! He estado algo ausente, aunque trato de seguir al día los videos. Me he enfermado, cosas de la vida. Me tienen que quitar la tiroides y aplicar yodo 131. No veo la hora de estar bien y poder seguir todo, ya que estas en temas muy puntuales e importantes. Un gran abrazo, desde Argentina, Leopoldo.
+Leopoldo Miracco Hola Leopoldo. Siento mucho que estés enfermo. Espero que te recuperes lo mejor posible y que sigas dando "guerra" por aquí. Mucho ánimo !! Un abrazo amigo
Yo hice una modificacion al codigo para enviar informacion usando un evento de KeyTyped basandome en su explicación, fue increible la sensacion cuando envio el mensaje, Increible Canal uno de los mejores, gracias por aportar sus conocimientos
Gracias a ti por tu comentario y por seguir mis vídeos. Cuando uno va más allá de lo que le explican en un curso la sensación es maravillosa. Un saludo!
Completamente sorprendido por el magistral don de la enseñanza del cual estás dotado, simplemente gracias por todos y cada uno de los videos que nos compartes de manera gratuita. Y pensar que me había saltado gran cantidad de videos por que ya quería ir a la parte de JEE, al hacerlo me cercioré que era necesario ver algunos temas que pensé no necesitarlos en JEE y al hacer esto, (devolverme) encontrarme con tan excelentes contenidos
Solo falta que pases JDBC y cualquiera que haya seguido tus videos, esta preparado para entrar en el mundo labora. Son geniales... Voy a crear un Chat, si se hace mundialmente conocido, tendrás el reconocimiento. jajajajajaajja Saludos,
magistral como siempre!, me he puesto al dia y espero seguir hasta que acabe el curso y empezar otro, muy buenos los vídeos,como sugerencia creo que deberías monetizar los vídeos para tener otra razón para seguir con el mismo animo. saludos
Hola, Muchas gracias en serio te agradezco mucho tu tutorial. Estaba que me arranca los pelos de la cabeza por que necesitaba hacer una parte del proyecto para mi curso de la universidad la cual no me daba mucho la idea de como empezarlo o hacerlo. Muchas gracias en serio.
SOIS EL MASTER! Que bueno eres macho, aún faltan cosas como cerrar la conexión al detectar que se cerró la conexión por una de las partes, hilos con elementos gráficos, en fin muchas cosas pero piano piano si va lontano, como vais, vais bien.
+Dionisio Barboza Hola !! Gracias por el comentario. Sí, tienes razón faltan cosas. Es así con todos los temas en Java. Este lenguaje como ya sabrás es casi infinito. Muchas cosas yo las desconozco, y otras las conozco pero no las explico porque si no el curso se iría a los 500 vídeos. Vamos por el 191 a día de hoy y aún falta casi la mitad. Creo que es bueno enseñar lo necesario para que el que quiera profundizar, eche un vistazo a la API y lo pueda hacer de forma autodidacta. Un saludo!!
Hola PildorasInformaticas. Me encanto los videos termine de verlos 191 videos Quede en Stop y me gustaria saber si seguiran subiendo videos con otros ejemplos sobre JDBC . Super Videos ayudan muxo a comprender mejor el lenguaje. Saludos.
Buenísimos tutoriales, muy pero que muy completos. Yo estoy aprendiendo Java con sus tutoriales !Enseña perfectamente !! Tengo una duda personal, una vez sabiendo todo esto de Java podría programar para android o necesitaría tomar un curso para android (por ejemplo, desde 0 como este curso)? Muchas gracias de nuevo por los tutoriales aquí sigue una suscriptora ! Un saludo
+romarsocos Hola !! Muchas gracias por el comentario. Me alegro de que te gusten los vídeos. Para programar en Android necesitarás un curso específico de Android. Tener conocimientos de Java es una excelente base para abordar un curso de Android. Es mi intención comenzar en breve un curso de Android. Un cordial saludo
Excelentes videos. Lo felicito. Haber si también puede hacer: [*]. Tutoriales con JavaEE paralelamente a sus tutoriales de Java Y si no fuera molestia ... [**]. Tutoriales de carrito de compras con JavaEE y Paypal (Pero que pueda usarlo con toda seguridad con fines comerciales reales) Quisiera saber cómo enviar a mi base de datos la siguiente información: A. Los datos de los productos solicitados a través de Paypal por el comprador. B. Los datos personales de la persona que compró a través de Paypal. ¿Cómo usar el API de Paypal en el lado del servidor? ================================================== De antemano, muchas gracias.
+Luis Enrique Velarde Hola !! Gracias por el comentario. Lo de JEE está previsto desde que comencé el curso. Como ya he comentado otras veces, este curso tendrá aproximadamente 300 vídeos. O sea, que todavía queda. Veremos JDBC, JSP, Servlets etc. Respecto a lo del carro PayPal, no se si lo haré. Pero tomo nota... Un saludo
que tal juan, gracias por tu tiempo para hacer los videos, sos el mesías de la programación jajaj.Te quiero preguntar si esto es lo mismo para android, y si esto sirve (o es) para hacer un juego en red . nuevamente gracias por los videos.
Gracias por el comentario. No, no es lo mismo. Android tienen su propia biblioteca de clases para hacer las cosas. A pesar de que los fundamentos y principios son los mismos, las clases no lo son. Un saludo!
primero, gracias por tu contenido ¿cuál es la diferencia entre este tipo de sockets vs websockets? entiendo que los primeros se ejecutan sobre TCP/IP y los segundos, son del api de JEE ¿no?
websocket se ejecuta vía TCP/IP sobre protocolo http utilizando un navegador y conectando permanentemente con un servidor web. Un socket a pesar de que también se ejecuta sobre TCP/IP es más genérico y no se restringe únicamente a protocolo http y conexión a servidor web. Un saludo!
Eres una máquina explicando 😉. Una duda, para un programa con BD, estructura cliente-servidor ¿habría que hacer el mismo proceso por cada campo u opcion que se quiera grabar en el servidor? Gracias !!
Muy interesante tengo una pregunta, yo quisiera que el SERVIDOR envie un mensaje al cliente se PODRA? Es decir que ahora el cliente estee ecuchando no necesariamente que el cliente envie y recien conteste el servidor.
Me gustaría hacer algo así como un ajedrez online simple, pero no sé si lo pueda hacer viendo sus videos, es decir, imagino que la aplicación servidor debería tener el tablero, al igual que la del cliente y si el cliente mueve una pieza, debería verse reflejado en el servidor, pero el ajedrez se juega de a dos, ¿cómo se manejaría esto?
La primera vez que lo ejecuté funcionó sin problemas, pero después el servidor me saca una excepción del tipo java.net.BindException informando de que la dirección ya está en uso. Imagino que el puerto se queda ocupado de alguna manera, o no se cierra la conexión. De momento no he conseguido solucionarlo. Seguimos en ello. Edito: Comprobado. Si cambio el número de puerto, me vuelve a funcionar, pero sólo en una primera ejecución. Después me dice que el puerto ya está ocupado: Esta es la excepción: java.net.BindException: Address already in use: JVM_Bind at java.net.DualStackPlainSocketImpl.bind0(Native Method) at java.net.DualStackPlainSocketImpl.socketBind(Unknown Source) at java.net.AbstractPlainSocketImpl.bind(Unknown Source) at java.net.PlainSocketImpl.bind(Unknown Source) at java.net.ServerSocket.bind(Unknown Source) at java.net.ServerSocket.(Unknown Source) at java.net.ServerSocket.(Unknown Source) at fede.sockets.MarcoServidor.run(Servidor.java:47) at java.lang.Thread.run(Unknown Source)
Hola! Una duda, si solo deseo que se conecte un cliente a la vez, como puedo lograrlo? Eh buscado en la API y encontres que el constructor deberia modificarse de la siguiente manera: ServerSocket Servidor = new ServerSocket(9999, 1); Donde el 1 representar el numero de conexiones maximas permitidas, pero aun asi pueden seguirse conectando varios clientes. No se si se deba modificar la posicion de alguna de las lienas de codigo o que hacer.
HOla !! Sí, es una petición que me han hecho ya varias veces. Respecto a qué opino de ello, la verdad no sabría que decirte. tengo mis sospechas. En principio se creó para competir con Flas y Silverlight... y a estas tecnologías no les va demasiado bien. Puede ser que todo se quede en un "bluf". Ya veremos...
Hay algo que no entiendo, porque creas un nuevo socket cada vez que vas a enviar un mensaje, no se puede usar un mismo socket para enviar varios mensajes? Espero tu respuesta gracias
es que el segundo socket que se crea con el accept es un socket de usuario, por así decirlo, no del servidor, entonces podrían venir sockets de distintos ordenadores y para cada uno de ellos la conexión debe ser distinta, por que las ip de los usuarios y sus sockets pueden ser distintas, con el comando getInetAdress puedes rescatar la IP de un socket y con otro comando puedes rescatar el socket de conexión que se abre de ese usuario, te animo a probarlo entre dos ordenadores distintos, o crear una máquina virtual en tu pc con virtualmachinebox ya que las máquinas virtuales tienen distinto ip que el ip de tu pc con tu sistema operativo principal, si haces esto te darás cuenta que el accept rescata la ip y socket de usuario mas no del servidor, por lo que, si queremos que la aplicación funcione con muchos ordenadores distintos de diferentes usuarios, es necesario hacerlo de esta manera para que la gestión sea distinta.
@@smokingcrimson128 entiendo muchas gracias, pero me parece algo poco óptimo tener q eliminar y crear otro cada vez q quiero enviar 1 solo dato, no sabes si hay otra forma de hacerlo?
@@ignacioinzerilli2382 tal vez lo mejornsería conectar con el servidor y enviar el mensaje para guardarlo en una base de datos, cuando el otro usuario se conecte este pueda recoger el mensaje de una conexión con ina base de datos y eso sea óptimo, además de poder personalizar más los detalles del mensaje, pero entiendo que de momento no lo ha hecho porque aún no se ven base de datos en la parte de este tutorial, te recomiendo estudies bases de datos relacionales como mysql y cursos que enseñen como poder construir bases de datos óptimas, voy a buscar tutoriales para pasártelos amigo
Hola, hago todo lo que dices en el video pero a la hora de presionar el boton enviar no aparece nada en el cuadro de texto del servidor, me gustaria saber si me puedes ayudar con eso, ya revise todo el codigo y no hay ningun error en el
Hola !! Si dices que no hay error en tu código no puedo ayudarte. pero si quieres puedes copiar y pegar por aquí todo tu código para comprobar que efectivamente no hay ningún error. En estos vídeos en concreto entran en juego factores que yo no puedo corregir en vuestros ordenadores como por ejemplo conexiones de red, máquinas virtuales etc. Un saludo!!
Buenas noches saludos, no me funciona profe, he seguido al pie de la letra sus indicaciones y he seguido el curso y nada, he llegado a la conclusion que podrian ser los puertos que quizas sea algun conflicto con ellos pero no sabria, y por eso el motivo de mi comentario quisiera saber si es posible hallar el error del porque de queda como pegado y nunca llega el mensaje a la app de servidor. Le agradezco de antemano la atencion prestada y espero pronta respuesta de su parte
Mira a ver la configuración de tu firewall y mira también si los equipos se ven en red. Poco más te puedo ayudar con este tipo de error. En este tema por desgracia no influyen solamente cuestiones de código java. Un saludo!!
Yo tuve el mismo problema, lo que hice fue cambiar y en lugar de poner la dirección de ip de mi computadora coloque "localhost" y con ello funcionó de maravilla. Saludos!!
Amigo, si el servidor es Linux y le quiero enviar una petición desde windows usando java, tengo que instalar algo adicional en linux? o sólo basta con que haya conectividad ? Gracias por alguna luz.
Holas, para poder realizar una aplicacion web, para poder realizar un CRUD en MySQL mediante JDBC, la estructura del Socket y ServerSocket,¿seria similar?
Hola estoy practicando el tema de Sockets, hay alguna forma de que se pueda controlar que el servidor se "prenda" y se "apague", con algun boton (: llevo atascado en eso por muchos dias y no encuentro nada util investigando :S
Hace tiempo que grabé estos vídeos y no recuerdo exactamente todo el código (tendría que revisar mis vídeos de nuevo) pero si existe la posibilidad de hacer lo que pides. Lo que pasa es que habría que rediseñar el programa por completo. Si no recuerdo mal, el servidor en este programa lo estamos arrancando nosotros de forma manual desde Eclipse. La solución que se me ocurre a bote pronto es crear una interfaz gráfica desde la que arrancar o apagar el servidor.
pildorasinformaticas Si, entiendo yo estoy tratando de hacer eso (: ya con interfaz gráfica y usando un hilo; pero el problema principal es que el servidor se "detiene" esperando la respuesta del cliente en el método acept() llevo atascado ahí un buen tiempo, muchas gracias por responder mi comentario...
Pues no lo se, quizás una configuración de seguridad que ni tú ni yo sabemos ahora mismo e impide la conexión. El firewall debe estar desactivado en todas las máquinas que participen en la conexión. Un saludo!
hola..DataOutputStream es epecial para convertir data de tipos primivitos como (char, int,double etc...) en secuencias binarias(bytes) para luego ser transferidas a un destino remoto. y ObjectOutputStrem hace lo mismo pero con objetos o instancias de clases...es decir descompone un objeto en bytes y luego se envia a un destino.
Hola, ami me marca error no me manda el mensaje del cliente al servidor hasta me marca error al dar clic en el botón enviar, estoy usando netbeans, probé con mi dirección ip y con localhost y tampoco
Sin ver el código y la configuración de tus ordenadores me resulta imposible ayudar con este problema. ¿Las Ip son correctas? ¿Tienes permiso para acceder a las máquinas?
Men lo estoy haciendo igual que tu(Local) y utilizo la misma logica del video , estoy 100% seguro de que estoy poniendo biien mi direccion ip y lo de los permisos nose muy biien pero creo que por ser paa mi misma pc no debe de haber mucho problema... :/ codigo: docs.google.com/uc?export=download&id=0Bw7MpsYVAmLgSlJ4SWJvZ1Q0Z1E
Imposible poderte ayudar con este tema. Tal vez sea un tema de permisos, pero sin ver el ordenador donde estás ejecutando el programa no te puedo ayudar. Lo siento.
Hola, el programa me funciona de maravilla la primera vez, pero despues, cuando quiero volver a usarlo me da error, porque dice que él puerto 9999 está en uso, es decir que queda abierta, lo corroboré por el cmd, y si, estaba abierto, lo cerré por ahí y el programa me volvió a funcionar, pero a lo que cerré el programa y lo volví a ejecutar me dio el mismo error, que puede ser?
Probablemente la conexión no se cierra al final del programa. Asegúrate de que tienes nombreConexion.close() al final del código (aunque yo no la tenga en el vídeo). UN saludo!
Tal vez tu programa se sgiue ejecutando. Si estás usando Netbeans, si puedes ver abajo en la derecha una barrita cargando, dale a la X para cerrar los procesos en ejecución. Si no hay barrita (o sea que no hay procesos) o no se resolvió tu problema, trata usando otro port. Tal vez tuviste la mala suerte de que otro programa estuviera usando ese port... Me pasó a mí. xD
Amigo creo que te has confundido en lo que es el cliente y lo que es el servidor. Como sabemos el cliente es el que pide la información o los recursos, hace peticiones y en el servidor, atiende a las peticiones, sucede que tú estas declarando un DataInputStream, que si no mal recuerdo esta instrucción es para leer la información recibida cuando su función es mandar los recursos, dar una respuesta, cosa que logramos con el DataOutputStream. Lo que hiciste (creo fue al reves) Estan de acuerdo?
Me he visto los videos de los streams pero aun asi no acabo de entender como funciona el: DataInputStream flujo_entrada = new DataInputStream(misocket.getInputStream());
hola amigo para verlo mejor voy a plantearte el siguiente esquema jerárquico de mayor a menor rango: imaginemos que estas instrucciones son una especie de túneles o canales y dentro de estos pasan otros canales que envian datos.. 1) El socket: Socket misocket=new Socket("192.168.0.3",9999); //canal principal que engloba a los demás. 2) un sub-canal del socket: misocket.getOutputStream(); //sub-canal que gestiona procesos de escritura. 3) canal del flujo de datos de salida: DataOutputStream flujo_salida=new DataOutputStream(misocket.getOutputStream()); //este canal se encarga de enviar el flujo de informacion o datos de texto hacia el exterior. el parámetro del constructor entre paréntesis (misocket.getOutputStream()); como ves en la jerarquia es el canal que engloba al canal del flujo de datos DataOutputStream. Al usarlo como parámetro le estamos indicando al canal de flujos de datos DataOutputStream que va operar a través (dentro) del sub-canal del socket. espero te haya servido la info...saludos
Me paso igual, un día funcionaba y al otro ya no, ¿Que te dicen las excepciones? a mi en lo particular fue lo de que el puerto estaba en uso, es por el while infinito de alguna manera atrapa al puerto, después no me enviaba nada al servidor, se quedaba pasmado y después de unos segundos aparecía time out, lo solución para mi fue cambiando la ip por localhost