elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  socket, serversocket, interoperacion con otros lenguaje.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: socket, serversocket, interoperacion con otros lenguaje.  (Leído 1,484 veces)
bash

Desconectado Desconectado

Mensajes: 258



Ver Perfil
socket, serversocket, interoperacion con otros lenguaje.
« en: 1 Enero 2017, 21:47 pm »

   Buenas a tod@s feliz inicio de anio nuevo...
   bien, tengo una duda estoy tratando de crear un aplicacion te tipo webserver/server
   usando socket , serversocket, solamente por que quiero aprender y tambien quisiera saber si
   este servidor puede interactuar con aplicaciones escritas en otros lenguajes (c++, c.. obvio que si)
   quisiera entender por pasos y no soy nuevo en java pero para esta aplicacion mis conocimientos de socket
   son limitados , quisiera entender, quisiera que me recomendaran algun libro y link donde pueda leer
   acerca de este tema.
   
   
   pero como quiera les quiero mostrar algo sencillo , que quizas todos los que saben de      estetema en el foro saben.




Código
  1. package ConexionCliente;
  2.  
  3. import java.io.BufferedInputStream;
  4. import java.io.BufferedOutputStream;
  5. import java.io.BufferedReader;
  6. import java.io.DataInputStream;
  7. import java.io.DataOutputStream;
  8. import java.io.IOException;
  9. import java.io.InputStreamReader;
  10. import java.io.ObjectInputStream;
  11. import java.io.ObjectOutputStream;
  12. import java.io.PrintWriter;
  13. import java.net.Socket;
  14.  
  15. public class SocketCliente{
  16.  
  17. ///BufferedOutputStream bout = null;
  18. ///BufferedInputStream  bin  = null;
  19. ObjectOutputStream output = null;
  20. ObjectInputStream  input  = null;
  21. Socket               sck  = null;
  22. boolean              can  = false;
  23.  
  24.  
  25. public SocketCliente(){
  26. try{
  27. sck = new Socket("localhost", 4444);
  28. }
  29. catch(Exception e)
  30. {
  31.   e.printStackTrace();
  32. }
  33. }
  34.  
  35.  
  36.  
  37.  
  38.  
  39. public SocketCliente(String host, int port){
  40. try
  41. {
  42. sck = new Socket( host , port);
  43.    if(sck != null)
  44.     System.out.println("Se Conecto con "+sck.getInetAddress().getHostAddress() );
  45. }
  46. catch(Exception e)
  47. {
  48.   e.printStackTrace();
  49. }
  50. System.out.println("SocketCliente");
  51. }
  52.  
  53.  
  54. public String receive(){
  55. System.out.println("receive");
  56. String ret= null;
  57.  
  58. if(sck.isClosed())
  59. {
  60.    System.out.print("Socket is Close");
  61.    return ret;
  62. }
  63.  
  64. try {
  65. BufferedReader br = new BufferedReader(new InputStreamReader(sck.getInputStream()));
  66.  
  67. String t;
  68. while((t = input.readLine()) != null){
  69. ret += t;
  70. System.out.println(t);
  71. }
  72. //br.close();
  73. input.close();
  74.  
  75. } catch (IOException e) {
  76. e.printStackTrace();
  77. }
  78. finally{
  79. System.out.println("receive");
  80. return ret;
  81. }
  82. }
  83.  
  84.  
  85. public void Send(String str){
  86.  
  87. System.out.printf("%s\n", str);
  88. try {
  89.  
  90.  
  91. if(sck.isClosed())
  92. {
  93.    System.out.print("Socket is Close");
  94.    return;
  95. }
  96.    PrintWriter pw = new PrintWriter(sck.getOutputStream());
  97.        pw.print(str);
  98.     pw.flush();
  99. //output = new ObjectOutputStream(sck.getOutputStream());
  100. //output.writeBytes(str);
  101.    //output.flush();
  102.    //output.close();
  103. } catch (IOException e) {
  104. // TODO Auto-generated catch block
  105. e.printStackTrace();
  106. }
  107. finally{
  108. System.out.println("Send");
  109. }
  110. }
  111.  
  112. public void Close(){
  113. if(!sck.isClosed())
  114. {
  115.   try {
  116. sck.close();
  117. } catch (IOException e) {
  118. // TODO Auto-generated catch block
  119. e.printStackTrace();
  120. }
  121. }
  122. }
  123.  
  124. }

este codigo es de Main
Código
  1. public class Main {
  2.  
  3. public static void main(String[] args) {
  4.  
  5. //try{
  6. //Socket s = new Socket(InetAddress.getByName("stackoverflow.com"), 80);
  7. //PrintWriter pw = new PrintWriter(s.getOutputStream());
  8.    //pw.print("GET / HTTP/1.1\r\nHost: stackoverflow.com\r\n\r\n");
  9.   /// pw.print("Host: stackoverflow.com\r\n\r\n");
  10. //pw.flush();
  11. //BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
  12. //String t;
  13. //while((t = br.readLine()) != null) System.out.println(t);
  14. //br.close();
  15. //}catch(Exception e){
  16.    // e.printStackTrace();
  17. //}
  18.   String str;
  19.   str = "GET / HTTP/1.1\r\nHost: google.com\r\n\r\n";
  20.  /// SocketCliente sck = new SocketCliente("google.com", 80);
  21.   SocketCliente sck = new SocketCliente("localhost",4444);
  22.   sck.Send(str);
  23.   String res  = sck.receive();
  24.   System.out.println(res);
  25.   sck.Close();
  26.  
  27.  




ahora el codigo del servidor


Código
  1.  
  2. package Server;
  3.  
  4. import java.io.BufferedInputStream;
  5. import java.io.IOException;
  6. import java.io.InputStream;
  7. import java.io.InputStreamReader;
  8. import java.io.OutputStreamWriter;
  9. import java.io.Reader;
  10. import java.io.Writer;
  11. import java.net.ServerSocket;
  12. import java.net.Socket;
  13. import java.util.Date;
  14.  
  15. public class Server implements Runnable{
  16.  
  17. int          puerto;
  18. ServerSocket ssock;
  19. Socket        sock;
  20. boolean        isrun = true;
  21. String         server_id;
  22. String         response;
  23.  
  24.  
  25. Server(int puerto, String sid){
  26. this.puerto = puerto;
  27. server_id = sid;
  28.    try{
  29. ssock = new ServerSocket(puerto);
  30.    }catch(IOException e){
  31.     e.printStackTrace();
  32.    }
  33. }
  34.  
  35. public void HandleRequest(){
  36.  
  37. System.out.println("manejando desde el Puerto "+ Integer.toString(puerto));
  38.  
  39.  try{
  40. sock = ssock.accept();
  41. System.out.println("cliente Conectado desde la IP "+sock.getRemoteSocketAddress());
  42.  
  43. Reader in = new InputStreamReader(new BufferedInputStream(sock.getInputStream()));
  44.  
  45. StringBuilder request = new StringBuilder(2048);
  46. while (true) {
  47. int c = in.read();
  48. if (c == '\r' || c == '\n' || c == -1) break;
  49. request.append((char) c);
  50. }
  51.  
  52. System.out.printf("%s", request.toString());
  53.  
  54. Writer out = new OutputStreamWriter(sock.getOutputStream());
  55. Date now = new Date();
  56. out.write(now.toString() +"\r\n");
  57. out.flush();
  58. sock.close();
  59. isrun = false;
  60.        System.out.println("Cliente desconectado");
  61.  
  62.  }catch(IOException e){
  63.  e.printStackTrace();
  64.  }
  65.  
  66.  
  67. }
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75. @Override
  76. public void run() {
  77. while(isrun){
  78. System.out.println("Esperando conexion....");
  79. HandleRequest();
  80. }
  81.  
  82. }
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89. }
  90.  
  91.  
  92.  



Bueno cada vez que trato de interactuar el servirdor lee solo hasta \n \t el reader no me permite leer una linea completa se queda colgado, me gustaria que me ayudaran por favor post-data la informacion que me respoda no importa esta parte se puede obviar. gracias de antemano por los consejos..





En línea

gracias por responder mis dudas
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda con serversocket explicacion de que realmente hice???
Java
egyware 2 2,530 Último mensaje 17 Agosto 2007, 19:27 pm
por egyware
Multithread Socket (Thread per Socket)not Complete « 1 2 »
Programación Visual Basic
ntaryl 12 9,307 Último mensaje 10 Febrero 2012, 18:42 pm
por ntaryl
Problemita con serversocket
Java
chrs1214 0 1,595 Último mensaje 19 Septiembre 2013, 14:08 pm
por chrs1214
Lenguaje C temas (en orden) que debo aprender para dominar este Lenguaje?
Programación C/C++
r_fercho 3 7,154 Último mensaje 8 Mayo 2014, 04:56 am
por r_fercho
[RESUELTO]Crear una cola de conexiones de Socket en un ServerSocket.
Java
NikNitro! 4 5,059 Último mensaje 26 Mayo 2014, 21:41 pm
por NikNitro!
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines