Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/11/2015, 13:25
toni12883
 
Fecha de Ingreso: noviembre-2015
Ubicación: Telde
Mensajes: 1
Antigüedad: 6 años, 9 meses
Puntos: 0
Pregunta enviar multiples buffers de c++ a java


Buenas a todos, acavo de llegar a este foro con un problema que no consigo encontrar solucion...
Intento enviar multiples archivos que tengo ya en buffers de c++ a java
Este es el codigo que e ido generando... Espero que sepais cual es el problema... No encuentro informacion en internet.
El programa se bloquea


C++

Código:
//envio el tamaño del archivo
                       int tmp = htonl(mem_size);
			int l;
			l = send(s2, (char*)&tmp, sizeof(tmp), 0);
			printf("\n%i", mem_size);
			
//y envio el archivo			
			if ((len = send(s2, (char*)mem, (int)mem_size, 0)) == -1)
			{
				printf("error al enviar el mensaje");
				//getchar();
				return -1;
			}

Y este es el receptor en java


Código:
 private Runnable updateTask = new Runnable () {
		  
		    public void run() {
		    	int tamaño=0;
		    	try {
				//leemos el tamaño enviado desde c++	
				tamaño= din.readInt();
			
				
				
		    	} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
		    	
		           

		        ////////////////////////////////////////

			      final int buffer_size=1024;
			      
			      try
			      {
			    	  
		  		  /////////////////////////////
			          byte[] bytes=new byte[buffer_size];
			          int count = 0;
			          
			        
			        	  while(true){
		        		  if(count==tamaño){
                                      break;
	 	      		  }
			        		  count=count+din.read(bytes);
			        		
			          }
			        out.append("\nPRUEBA"+count);
			        count=0;
			        
			        
			          
			      }
			      
			      catch(Exception ex){ System.exit(0);  }
			
			  
		        /////////////////////////////////////////
		                    // queue the task to run again in 1 seconds...
		                    mHandler.postDelayed(updateTask, 10);


		    }
		};