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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [Sockets] Obtener Nombre del archivo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Sockets] Obtener Nombre del archivo  (Leído 3,037 veces)
kub0x
Enlightenment Seeker
Moderador
***
Desconectado Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
[Sockets] Obtener Nombre del archivo
« en: 11 Abril 2012, 03:29 am »

Buenas a aquellos que leais el post,

he decidido postear este tema en este foro ya que por el momento no trataré con ningun lenguaje de programación. Lo que pido al poder ser es CONSEJO ya que llevo un buen rato buscando.

El problema es el siguiente:

tengo una aplicación Cliente/Servidor en la cual se producen envios de aplicaciones y son recibidas por el cliente directamente. Claro que al guardar la aplicación en el lado del Cliente tengo que introducir el nombre del ejecutable resultante manualmente en el código.

Ya probé enviando desde el Servidor un paquete con el nombre del archivo y los datos de la aplicación a enviar, después en el Cliente obtuve el nombre del archivo, pero el archivo estaba corrupto :/

Mi pregunta es, ¿Cómo obtener en el lado del Cliente el nombre del archivo recibido?

Agradezco cualquier ayuda..

Saludos.


En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

kub0x
Enlightenment Seeker
Moderador
***
Desconectado Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
Re: [Sockets] Obtener Nombre del archivo
« Respuesta #1 en: 11 Abril 2012, 12:49 pm »

Animaros! seguramente más de alguno de vosotros haya codeado una aplicación Client/Server con lo que pido, solo os pido un consejillo nada más :P

Saludos.


En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

kub0x
Enlightenment Seeker
Moderador
***
Desconectado Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
Re: [Sockets] Obtener Nombre del archivo
« Respuesta #2 en: 13 Abril 2012, 05:22 am »

No me gustaría tener que empezar a matar gatitos... >:D

Vamos :P ¿ni una simple recomendación? será que no me he buscado la vida lo suficiente por la red... ¬¬

No os pido el code, si no una breve explicación con la que poder implementar lo que digais.

Saludos.
En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

kub0x
Enlightenment Seeker
Moderador
***
Desconectado Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
Re: [Sockets] Obtener Nombre del archivo
« Respuesta #3 en: 14 Abril 2012, 20:06 pm »

Movedlo a .NET

Sabía que iba a solucionarlo (con o sin ayuda....), en media horilla conseguí implementar lo que quería... El envío de archivos es asincronico, y se guardan con su respectivo nombre y formato. Los datos no llegan corruptos :)

Dejo las funciones de envío y de recibo (sólo en las que envío/proceso los datos) :

En el Servidor:

Código
  1. Private Sub Enviar_Datos(ByVal Ruta_Archivo As String, ByVal Cliente As TcpClient, _
  2.                             ByVal Nombre_Archivo As String)
  3.        If Cliente.Connected = True Then
  4.            Try
  5.                Dim Flujo_Red As NetworkStream = Cliente.GetStream()
  6.                Dim fileNameByte() As Byte = Encoding.ASCII.GetBytes(Nombre_Archivo)
  7.                Dim fileData() As Byte = My.Computer.FileSystem.ReadAllBytes(Ruta_Archivo)
  8.                Dim clientData() As Byte = New Byte(4 + fileNameByte.Length + fileData.Length) {}
  9.                Dim fileNameLen() As Byte = BitConverter.GetBytes(fileNameByte.Length)
  10.                fileNameLen.CopyTo(clientData, 0)
  11.                fileNameByte.CopyTo(clientData, 4)
  12.                fileData.CopyTo(clientData, 4 + fileNameByte.Length)
  13.                ListBox1.Items.Add(fileData.Length / 1024)
  14.                Flujo_Red.BeginWrite(clientData, 0, clientData.Length, _
  15.                                     New AsyncCallback(AddressOf Enviar_Datos_CallBack), Flujo_Red)
  16.            Catch ex As Exception
  17.                MsgBox(ex.Message)
  18.            End Try
  19.        Else
  20.            Escuchar()
  21.        End If
  22.  

En el Cliente:

Código
  1.    Private Sub RecibirDatos_CallBack(ByVal ar As IAsyncResult)
  2.        Try
  3.            Dim Buffer() As Byte = CType(ar.AsyncState, Byte())
  4.            Dim ns As NetworkStream = ClienteG.GetStream
  5.            ListBox1.Items.Add(Buffer.Length / 1024)
  6.            Dim Bytes_Leidos As Int32 = ns.EndRead(ar)
  7.            Dim fileNameLen As Byte = BitConverter.ToInt32(Buffer, 0)
  8.            Dim fileName As String = Encoding.ASCII.GetString(Buffer, 4, fileNameLen)
  9.            If Bytes_Leidos > 0 Then
  10.                Dim file As New FileStream(CurDir() & "\" & fileName, FileMode.Create, FileAccess.Write)
  11.                file.Write(Buffer, 4 + fileNameLen, Bytes_Leidos - 4 - fileNameLen)
  12.                file.Close()
  13.            Else
  14.                ReceiveDone.Set()
  15.            End If
  16.        Catch ex As Exception
  17.        End Try
  18.    End Sub
  19.  

Saludos.
« Última modificación: 24 Abril 2012, 23:27 pm por kub0x » En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Batch] obtener nombre de archivo (solucionado)
Scripting
corax 2 10,952 Último mensaje 23 Junio 2009, 20:29 pm
por corax
Obtener el nombre de PC
Programación C/C++
.:WindHack:. 1 2,460 Último mensaje 16 Mayo 2010, 21:40 pm
por Foxy Rider
Obtener ruta y nombre de archivo por el PID
Programación C/C++
Distorsion 5 5,852 Último mensaje 13 Enero 2011, 15:11 pm
por Distorsion
[RETO] Obtener nombre de archivo « 1 2 3 4 »
Programación Visual Basic
Psyke1 37 17,012 Último mensaje 15 Febrero 2011, 16:08 pm
por Psyke1
Enviar archivo con sockets
Programación C/C++
NowhereMan 2 2,504 Último mensaje 12 Enero 2016, 21:04 pm
por NowhereMan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines