Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Programacion De Red (envio De Archivo De Texto)[resuelto]
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Programacion De Red (envio De Archivo De Texto)[resuelto] 
 
bueno estoy programando en red, tengo clasificados 4 tipos de envios de datos que son distinguidos por el sevidor con estas palabras:

chat, datos,sql,archivo

chat: mensajes del chat
datos:puntos y juegos ganados para mostrar en el tablero del servidor
sql: consultas de base de datos
archivo: envio de los archivos que contienen la informacion de los partidos

código del cliente



' gambas module file

Public InfoDatos As String
Public MensajeDEchat As String



Public Sub EnviarDatos()
 FMain.ChatOdatos = "datos"
 
 InfoDatos = FMain.QueMesa & "," & FMain.ChatOdatos & "," & FMain.btnNombreCj1.Text & "," & FMain.setganadosj1 & "," & FMain.tantosJugador1 & "," &
 FMain.btnNombreCj2.Text & "," & FMain.setganadosj2 & "," & FMain.tantosJugador2 & "," & FMain.VarGrupoTorneo & "," & FMain.Categoria

 If FMain.Socket12.Status = Net.Connected Then
   Write #FMain.Socket12, InfoDatos, Len(InfoDatos)
 Endif
 
End

Public Sub EnviarMensaje()
 FMain.ChatOdatos = "chat"
 
 FMain.MensajeChatFinal = FMain.QueMesa & "," & FMain.ChatOdatos & "," & MensajeDEchat & gb.NewLine
 
 If FMain.Socket12.Status = Net.Connected Then
  Write #FMain.Socket12, FMain.MensajeChatFinal, Len(FMain.MensajeChatFinal)
 Endif
 
End

Public Sub ConsultaSQl()
   FMain.ChatOdatos = "sql"
End

Public Sub ConexionExitosa()
  Wait 0.2
  FMain.MensajeChatFinal = FMain.QueMesa & "," & "ConexionExitosa" & gb.NewLine
 
  If FMain.Socket12.Status = Net.Connected Then
     Write #FMain.Socket12, FMain.MensajeChatFinal, Len(FMain.MensajeChatFinal)
  Endif
 
End

Public Sub EnviarArchivo()
  Dim sPath As String
  Dim ArchivoX As File
  Dim LineaX As String
  
  sPath = ganador.DirArchivoRED
 
  ArchivoX = Open sPath For Read

    While Not Eof(ArchivoX)
      
      Line Input #ArchivoX, LineaX
    
      If FMain.Socket12.Status = Net.Connected Then
        FMain.MensajeChatFinal = FMain.QueMesa & "," & "archivo" & "," & sPath & LineaX
        Write #FMain.Socket12, FMain.MensajeChatFinal, Len(FMain.MensajeChatFinal)
      Endif
    
    Wend
  
  Close ArchivoX
 
End




código del sevidor

' EVENTOS DE CLIENTES (LECTURA ESCRITURA)
Public Sub Socket_Read()
  Dim DatosRecibidos, ProcesandoDatos As String
  
  Try Read #Last, DatosRecibidos, Lof(Last)
  
   Print "datosrecibidos=" & DatosRecibidos
  
  DatosSeparados = Split(DatosRecibidos, ",")
  
  Select Case Trim$(DatosSeparados[1])
    Case "chat"
       Print "mensaje de chat"
       QueMesaActivo()
       txtAChat.Text &= DatosSeparados[0] & ": " & DatosSeparados[2]
    Case "datos"
       Print "envio de datos"
       QueMesaActivo()
    Case "ConexionExitosa"
       Print "Se conecto exitosamente"
       QueMesaActivo()
    Case "archivo"
       Print "transfirendo archivo"
       txtAChat.Text &= DatosSeparados[0] & ": " & DatosSeparados[3]
       QueMesaActivo()
    Case Else
       Print "DatosSeparados[1]=" & DatosSeparados[1]
      
      
  End Select
  
End



los tres primero tipos de envíos ya funcionan salvo alguno problemitas que tengo en el servidor

pero ahora estoy en el desafío de como enviar un archivo de texto por red

acepto todo tipo de sugerencias porque estoy escribiendo código a pulmón y experimentación  
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
última edición por v3ctor el Sabado, 14 Marzo 2015, 18:58; editado 2 veces 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Programacion De Red (envio De Archivo De Texto) 
 
V3ctor:

    While Not Eof(ArchivoX)
      
      Line Input #ArchivoX, LineaX
    
      If FMain.Socket12.Status = Net.Connected Then
        FMain.MensajeChatFinal = FMain.QueMesa & "," & "archivo" & "," & sPath & LineaX
        Write #FMain.Socket12, FMain.MensajeChatFinal, Len(FMain.MensajeChatFinal)
      Endif
    
    Wend


Yo veo algo raro en lo que estas haciendo.... parece que lees linea por linea el archivo, y por cada linea, se la mandas al socket
¿no seria mejor leer todo el archivo, y una vez leido, mandarselo "entero" (y no linea a linea), al socket?

QueMesaActivo()


¿que hace esa subrutina?, porque tal como lo tienes hecho, la llamas cada vez que reciba una linea del fichero...
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Programacion De Red (envio De Archivo De Texto) 
 
Yo veo algo raro en lo que estas haciendo.... parece que lees linea por linea el archivo, y por cada linea, se la mandas al socket
¿no seria mejor leer todo el archivo, y una vez leido, mandarselo "entero" (y no linea a linea), al socket?

si es lo que pienso, pero... como no se como se hace estoy intentando mandar el archivo linea por linea y rearmar el archivo en el servidor.


QueMesaActivo()


¿que hace esa subrutina?, porque tal como lo tienes hecho, la llamas cada vez que reciba una linea del fichero...

 lo que hace es activar el botón que indica que la mesa 1,2 , 3 etc, esta conectada.


aun tengo mucho enriedo de como lo voy hacer, solo estoy probando cosas hasta que quede un código mas claro.

 servidor

vos tenes algún código de ejemplo de como mandar un archivo de una de un cliente a un servidor?

jsban: te sugiero dos cosas para agregar a tu curso, que son los dos problemas que ahora tengo.

1- un ejemplo muy simple de como manejar varios clientes con un servidor de como identificar su conexion y desconexion
2- envio de archivo de texto de un cliente a un servidor.
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
última edición por v3ctor el Sabado, 14 Marzo 2015, 15:27; editado 2 veces 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Programacion De Red (envio De Archivo De Texto) 
 
algo asi seria enviar un archivo??
no se como leerlo y guardarlo en el serividor???

sigo haciendo pruebas

Public Sub EnviarArchivo()
  Dim ArchivoRED As File
  
  Print "nombre archivo es=" & ganador.DirArchivoRED
  
  If Exist(ganador.DirArchivoRED) = True Then
     Print "archivo existe"
     ArchivoRED = Open ganador.DirArchivoRED For Read
    
     If FMain.Socket12.Status = Net.Connected Then
       Write #ArchivoRED, Len(ArchivoRED)
     Endif

     Close #ArchivoRED
  Endif

End



editado:no no funciona la linea write solo permite string  
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
última edición por v3ctor el Sabado, 14 Marzo 2015, 16:27; editado 1 vez 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Programacion De Red (envio De Archivo De Texto) 
 
tal vez este código este mas acertado


Public Sub EnviarArchivo()
  Dim sPath As String
  Dim ArchivoX As File
  Dim ArchivoRED As File
  Dim LineaX As String
  Dim TextoArchivo As String
  
  sPath = ganador.DirArchivoRED
  Print "nombre archivo es=" & ganador.DirArchivoRED
 
  ArchivoX = Open sPath For Read
    While Not Eof(ArchivoX)
      Line Input #ArchivoX, LineaX
      TextoArchivo &= LineaX
    Wend
  Close ArchivoX
 
  If FMain.Socket12.Status = Net.Connected Then
    Write #FMain.Socket12, TextoArchivo, Len(TextoArchivo)
  Endif

End
 




iuuuuuuuppiiiiiiiiiiiiiii  funcionaaaaaa este es el codigo del servidor crudo pero se creo el archivo correctamente.


Public Sub Socket_Read()
  Dim DatosRecibidos, ProcesandoDatos As String
  
  Try Read #Last, DatosRecibidos, Lof(Last)
  
   Print "datosrecibidos=" & DatosRecibidos
  
  DatosSeparados = Split(DatosRecibidos, ",")
  
  Select Case Trim$(DatosSeparados[1])
    Case "chat"
       Print "mensaje de chat"
       QueMesaActivo()
       txtAChat.Text &= DatosSeparados[0] & ": " & DatosSeparados[2]
    Case "datos"
       Print "envio de datos"
       QueMesaActivo()
    Case "ConexionExitosa"
       Print "Se conecto exitosamente"
       QueMesaActivo()
    Case "archivo"
       Print "transfirendo archivo"
'        txtAChat.Text &= DatosSeparados[0] & ": " & DatosSeparados[3]
      
       QueMesaActivo()
    Case Else
       Print "ruta=" & User.Home & "/prueba99.txt"
       File.Save(User.Home & "/prueba99.txt", DatosRecibidos) 'ASI SE RECIBEN LOS DATOS
      
      
  End Select
  
End


Bueno ahora a pulir, ya que debo enviar el nombre del archivo desde el cliente y guardarlo en el servidor con ese nombre.

que alegria jajaajaj

 



aqui una imagen del archivo creado que no esta bien armado pero si se  paso la informacion del archivo, ahora a trabajar como guardar todo en igual que el archivo del cliente.

 777999
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
última edición por v3ctor el Sabado, 14 Marzo 2015, 17:03; editado 4 veces 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Programacion De Red (envio De Archivo De Texto) 
 
servidor

Public Sub Socket_Read()
  Dim DatosRecibidos As String
  
  Try Read #Last, DatosRecibidos, Lof(Last)
  
  DatosSeparados = Split(DatosRecibidos, "[")
 
  Print "Trim$(DatosSeparados[1]) " & Trim$(DatosSeparados[1])
  
  Select Case Trim$(DatosSeparados[1])
    
    Case "chat"
       QueMesaActivo()
       txtAChat.Text &= DatosSeparados[0] & ": " & DatosSeparados[2]
    Case "datos"
       QueMesaActivo()
    Case "ConexionExitosa"
       QueMesaActivo()
    Case "archivo"
       File.Save(User.Home & DatosSeparados[2], DatosSeparados[3])
       QueMesaActivo()
    Case "sql"
        QueMesaActivo()
    Case Else
       Print "transporte no identificado(case else)"
       DatosRecibidos = Null
      
  End Select
  
End


cliente

Public Sub EnviarArchivo()
  Dim sPath, LineaX, TextoArchivo, DatosdeArchivo As String
  Dim ArchivoX, ArchivoRED As File
  
  ArchivoX = Open ganador.DirArchivoRED For Read
    While Not Eof(ArchivoX)
      Line Input #ArchivoX, LineaX
      DatosdeArchivo &= LineaX& gb.NewLine' aqui faltaba  esto: &gb.NewLine y quedo perfecto el archivo se envia y crea perfecto  :mryellow:
    Wend
  Close ArchivoX
  
  TextoArchivo = FMain.QueMesa & "[" & "archivo" & "[" & ganador.NombreArchRed & "[" & DatosdeArchivo

  If FMain.Socket12.Status = Net.Connected Then
    Write #FMain.Socket12, TextoArchivo, Len(TextoArchivo)
  Endif
 
End



ya logre guardar el archivo con el mismo nombre del archivo original, mi probrema ahora es que no se guardan los saltos de linea  



    DatosdeArchivo &= LineaX& gb.NewLine' aqui faltaba  esto: &gb.NewLine y quedo perfecto el archivo se envia y crea perfecto  

Problema de envio de archivo de txt por red resuelto.



Link

 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
última edición por v3ctor el Sabado, 14 Marzo 2015, 19:34; editado 2 veces 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Archivo De Texto Encriptado jcontasti Bases de Datos 1 Martes, 22 Junio 2010, 18:41 Ver último mensaje
Emmet
No hay nuevos mensajes Abrir Archivo De Texto Plano marcosg General 14 Jueves, 09 Diciembre 2010, 23:36 Ver último mensaje
marcosg
No hay nuevos mensajes Mysql Y Archivo De Texto Plano jhonnshark General 3 Martes, 04 Octobre 2011, 16:03 Ver último mensaje
jguardon
No hay nuevos mensajes Buscar Un Archivo Que Contenga Un Texto Shell Mundo Linux 0 Martes, 05 Febrero 2019, 15:24 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron