Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - MANULOMM

#501
Hola
Quiero saber como hago para pasar un texto que tenga en textbox a un block de notas tal cual y que despues el archivo del block de notas se guarde con la fecha en el siguiente formato
(Año - Mes - Dia) --> 2006 - 08 - 29

Muchas Gracias

JUAN MANUEL LOMBANA
MEDELLÍN - COLOMBIA
#502
hola, lo que debes hacer es dejarlos abiertos, y antes de que se conecte un nuevo cliente el servidor verifique si hay alguno abierto
para ocuparlo
asi:

'Carga un nuevo socket al arreglo y devuelve su indice
Private Function NuevoSocket() As Integer
    Dim numElementos As Integer 'numero de sockets
    Dim i As Integer 'contador
    'obtiene la cantidad de Winsocks que tenemos
    numElementos = Winsock2.UBound
    'recorre el arreglo de sockets
    For i = 0 To numElementos
        'si algun socket ya creado esta inactivo
        'utiliza este mismo para la nueva conexion
        If Winsock2(i).State = sckClosed Then
            NuevoSocket = i 'retorna el indice
            Exit Function 'abandona la funcion
        End If
    Next
    'si no encuentra sockets inactivos
    'crea uno nuevo y devuelve su identidad
    Load Winsock2(numElementos + 1) 'carga un nuevo socket al arreglo
    'devuelve el nuevo indice
    NuevoSocket = Winsock2.UBound
End Function

recuerda que la instrcuccio Winsok1.close tansolo cierra la conexion, no cierra el winsock

Atentamente

JUAN MANUEL LOMBANA
MEDELLÍN - COLOMBIA
#503
hola,
Estoy haciendo un programa cliente/servidor el cual utiliza winsock
es muy sencillo, se trata de un contador el cual cuando en el servidor se oprima un boton en el cliente el contador inicie, he tomado como idea que cuando se oprima el boton el dato que se envie sea una variable llamada buffer de tipo string la cual diga "tiempo" o algo parecidoy en el cliente la muestre en un textbox pero cuando le digo que si buffer = "tiempo" no hace nada coloco mi codigo para que me entiendan

CODIGO:
***Cliente

Private Sub Command1_Click()
    Dim DatosaEnviar As String
    DatosaEnviar = Text2.Text
    Winsock1.SendData DatosaEnviar
    Text1.Text = DatosaEnviar
    Text2.Text = ""
End Sub

Private Sub Command2_Click()
    Winsock1.RemoteHost = Text3.Text
    Winsock1.RemotePort = Text4.Text
    Winsock1.Close
    Winsock1.Connect
End Sub

Private Sub Command3_Click()
    Winsock1.Close
End Sub

Private Sub Form_Load()
    Timer1.Enabled = False
    Timer2.Enabled = False
End Sub

Private Sub Text1_Change()
    Select Case Text1.Text
        Case "Tiempo":
            Timer1.Enabled = True
            Timer2.Enabled = True
        Case "Parar":
                Timer1.Enabled = False
                Label1.Caption = "00"
                Label2.Caption = "00"
                Label3.Caption = "00"
                Timer2.Enabled = False
                Label6.Caption = "0"
    End Select
End Sub

Private Sub Winsock1_Close()
    Winsock1.Close
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim Buffer As String
    Winsock1.GetData Buffer
    Text1.Text = ""
    Text1.Text = Buffer
End Sub

Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
    Winsock1.Close
End Sub

Private Sub Timer1_Timer()
Label6.Caption = "0"
Label3.Caption = Val(Label3.Caption) + 1
If Val(Label3.Caption) < 10 Then
    Label3.Caption = "0" & Label3.Caption
End If
    If Val(Label3.Caption) > 59 Then
        Label3.Caption = "00"
        Label7.Caption = Val(Label7.Caption) + 1
            If Val(Label7.Caption) < 10 Then
                Label7.Caption = "0" & Label7.Caption
            End If
        If Val(Label7.Caption) > 59 Then
            Label7.Caption = "00"
            Label8.Caption = Val(Label8.Caption) + 1
           
            If Val(Label1.Caption) < 10 Then
                Label1.Caption = "0" & Label1.Caption
            End If
        End If
    End If
End Sub

Private Sub Timer2_Timer()
Label6.Caption = Val(Label6.Caption) + 1
End Sub



***Servidor



Private Sub Command1_Click()
    Winsock1.SendData Text2.Text
    Text1.SelStart = Len(Text1.Text)
    Text1.Text = Text2.Text
    Text1.SelStart = Len(Text1.Text)
    Text2.Text = ""
End Sub

Private Sub Command2_Click()
    Winsock1.Close
    Winsock1.LocalPort = Text3.Text
    Winsock1.Listen
End Sub

Private Sub Command3_Click()
    Winsock1.Close
End Sub

Private Sub Winsock1_Close()
    Winsock1.Close
End Sub

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
    Winsock1.Close
    Winsock1.Accept requestID
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim Buffer As String
    Winsock1.GetData Buffer
    Text1.Text = Buffer
End Sub

Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
    Winsock1.Close
End Sub


Nota: Ya he probado el timer solo y funciona, ya probe solo enviarme a modo de chata y funciona, no se que pasa que no reconoce la palabra para iniciar el cronometro.
por favor diganme donde esta el erro, quiero agregar que la  es una monoconexion (Un solo Cliente - Un solo Servidor)

Gracias de Antemano

Juan Manuel Lombana
#504
listo muchas gracias maro
#505
Programación Visual Basic / Error con Winsock
26 Agosto 2006, 03:24 AM
Hola tengo un problema hice un aplicacion Cliente/Servidor Multiconexion(Muchos Clientes un Solo Servidor) pero tengo un problema las maquinas en las que voy a colocar el cliente cuando trato de ejecutar el Exe como no tiene VB me saca un error que me dice:
component 'MSWINSOCK.OCX' or one of its dependencies not correctly registered: a file is missing or invalid
Como Puedo Solucionarlo, Donde Tengo Instalado El compilador de VB funciona bien...
Gracias

JUAN MANUEL LOMBANA
MEDELLÌN - COLOMBIA
#506
hola
yo estoy en proceso de hacer un aplicacion parecida y me di cuenta que tratas de hacer una multiconexion (Vario Clientes un Solo Servidor) pero como no sabemos cuantos clientes son  entonces le pedimos a la aplicacion que por cada cliente cree un winsok para la conexion por lo cual debe haber 2 winsock el 1 escucha este no tiene matriz (Array) pero el 2 como es quien hace la conexion con el nuevo cliente si debe tener Matriz y que esta este en 0, un pequeño desajuste de esto es que si se crea un Winsok y un cliente se conecta y mastarde se desconecta el winsock creado no desaparece por lo cual hay que decirle a la aplicación que antes de crear un nuevo winsock revise si no hay uno desocupado por que nos llenariamos de winsock, a qui te pongo mi coldigo que cumple con todo esto (Esta un poco distinto en cuanto a variables y txt pero esta muy comentado para que lo entiendas con facilidad)


'****ESTE ES EL CLIENTE***
Private Sub Command2_Click() 'Boton Conectar
'asignamos los datos de conexion
Winsock1.RemoteHost = Text3.Text  'Ip Servidor
Winsock1.RemotePort = Text4.Text  'Puerto
'conectamos el socket
Winsock1.Close
Winsock1.Connect
End Sub
Private Sub Winsock1_Connect()
'desplegamos un mensaje en la ventana
Text1.Text = Text1.Text & "*** Conexion establecida." &  VBCrLf
'desplazamos el scroll
Text1.SelStart = Len(Text1.Text)
End Sub
Private Sub Winsock1_Close()
'cierra la conexion
Winsock1.Close
'desplegamos un mensaje en la ventana
Text1.SelStart = Len(Text1.Text)
Text1.Text = Text1.Text & "*** Conexion cerrada por el servidor." & vbCrLf
Text1.SelStart = Len(Text1.Text)
End Sub
Private Sub Command3_Click() 'Boton Desconectar
'cierra la conexion
Winsock1.Close
'desplegamos un mensaje en la ventana
Text1.Text = Text1.Text & "*** Conexion cerrada por el usuario." & vbCrLf
'desplazamos el scroll
Text1.SelStart = Len(Text1.Text)
End Sub
Private Sub Command1_Click()
'enviamos el contenido de Text2
Winsock1.SendData Text2.Text & vbCrLf
'apuntamos al final del contenido del TextBox e
'insertamos los nuevos datos obtenidos
Text1.SelStart = Len(Text1.Text) 'coloca el cursor al final del contenido
Text1.Text = Text1.Text & "Cliente >" & Text2.Text & vbCrLf 'mostramos los datos
Text1.SelStart = Len(Text1.Text) 'coloca el cursor al final del contenido
'borramos Text2
Text2.Text = ""
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Buffer As String 'variable para guardar los datos
'obtenemos los datos y los guardamos en una variable
Winsock1.GetData Buffer
'apuntamos al final del contenido del TextBox e
'insertamos los nuevos datos obtenidos
Text1.SelStart = Len(Text1.Text) 'coloca el cursor al final del contenido
Text1.Text = Text1.Text & "Servidor >" & Buffer 'mostramos los datos
Text1.SelStart = Len(Text1.Text) 'coloca el cursor al final del contenido
End Sub
Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
'cerramos la conexion
Winsock1.Close
'mostramos informacion sobre el error
MsgBox "Error numero " & Number & ": " & Description, vbCritical
End Sub

Hasta Aca Esta el Cliente es muy Completo
CODIGO SERVIDOR

Private Sub Command1_Click()
Dim numElementos As Integer 'numero de sockets
Dim i As Integer 'contador
i = text4.text 'Comunicarme Con Un Cliente en Especial Por medio del Index del Sock
'obtiene la cantidad de Winsocks que tenemos
numElementos = Winsock2.UBound
'si el socket se encuentra conectado...
If Winsock2(i).State = sckConnected Then
'enviamos el contenido de Text2
Winsock2(i).SendData Text2.Text & vbCrLf
'apuntamos al final del contenido del TextBox e
'insertamos los nuevos datos obtenidos
Text1.SelStart = Len(Text1.Text) 'coloca el cursor al final del contenido
Text1.Text = Text1.Text & "Sock" & i & ":Servidor >" & Text2.Text & vbCrLf 'mostramos los datos
Text1.SelStart = Len(Text1.Text) 'coloca el cursor al final del contenido
End If
'borramos Text2
Text2.Text = ""
End Sub
Private Sub Winsock2_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim Buffer As String 'variable para guardar los datos
'obtenemos los datos y los guardamos en una variable
Winsock2(Index).GetData Buffer
'apuntamos al final del contenido del TextBox e
'insertamos los nuevos datos obtenidos
Text1.SelStart = Len(Text1.Text) 'coloca el cursor al final del contenido
Text1.Text = Text1.Text & "Sock" & Index & ":Cliente >" & Buffer 'mostramos los datos
Text1.SelStart = Len(Text1.Text) 'coloca el cursor al final del contenido
End Sub
Private Sub Winsock2_Close(Index As Integer)
'cierra la conexion
Winsock2(Index).Close
'desplegamos un mensaje en la ventana
Text1.SelStart = Len(Text1.Text)
Text1.Text = Text1.Text & "Sock" & Index & ":*** Conexion cerrada por el Cliente." & vbCrLf
Text1.SelStart = Len(Text1.Text)
End Sub
Private Sub Winsock2_Error(Index As Integer, ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
'cerramos la conexion
Winsock2(Index).Close
'mostramos informacion sobre el error
MsgBox "Error numero " & Number & ": " & Description, vbCritical
End Sub
'Carga un nuevo socket al arreglo y devuelve su indice
Private Function NuevoSocket() As Integer
Dim numElementos As Integer 'numero de sockets
Dim i As Integer 'contador
'obtiene la cantidad de Winsocks que tenemos
numElementos = Winsock2.UBound
'recorre el arreglo de sockets
For i = 0 To numElementos
'si algun socket ya creado esta inactivo
'utiliza este mismo para la nueva conexion
If Winsock2(i).State = sckClosed Then
NuevoSocket = i 'retorna el indice
Exit Function 'abandona la funcion
End If
Next
'si no encuentra sockets inactivos
'crea uno nuevo y devuelve su identidad
Load Winsock2(numElementos + 1) 'carga un nuevo socket al arreglo
'devuelve el nuevo indice
NuevoSocket = Winsock2.UBound
End Function
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Dim numSocket As Integer 'el numero del socket
'mostramos un mensaje en la ventana
Text1.SelStart = Len(Text1.Text)
Text1.Text = Text1.Text & "*** Peticion numero " & requestID & vbCrLf
Text1.SelStart = Len(Text1.Text)
'creamos un nuevo socket
numSocket = NuevoSocket
'aceptamos la conexion con el nuevo socket
Winsock2(numSocket).Accept requestID
'desplegamos un mensaje en la ventana
Text1.SelStart = Len(Text1.Text)
Text1.Text = Text1.Text & "Sock" & numSocket & ":*** Conexion aceptada, listo para interactuar." & vbCrLf
Text1.SelStart = Len(Text1.Text)
End Sub

Listo este es el Servidor Espero que te haya servido este codigo cualquier cosa me lo comentas al correo:
manulom@gmail.com

JUAN MANUEL LOMBANA
MEDELLÌN - COLOMBIA
#507
Hola  Mi nombre es Juan
Estoy haciendo un aplicación en vb6.0  la cual es algo haci como un chat en intranet hasta ahi todo bien.
pero mi problema es que no se como hacer para traspasar archivos por el programa osea del servidor al cliente y viceversa.

Gracias por su colaboracion
Att:
JUAN MANUEL LOMBANA
MI CORREO ES: manulom@gmail.com
                        manulom@une.com.co

#508
Ejercicios / Re: ayuda algoritmos
21 Agosto 2006, 08:30 AM
hola
para el 1. para que sepas que el sistema sexagesimal esta constituido por grados minutios y segundos
algo asi: 179°59´60´´ esto equivale a 180° por que un grado (1°) son 60 minutos y un minuto son 60 segundos suma y te daras cuenta - tambien es de decir que 2 radiantes son 360° y se lee 2pi(TT) radiales podes hacer todas las conversiones por medio de una regla de 3 ej:
2TTRa -360°|1TTRa * 360°= 360° = 180°
1TTRa -xxx°|      2TTRa          2

recuerda TTRa con TTRa se cancela por eso se multiplica por 1 y se divide por 2 dandonos una medida en solo grados esto lo podes aplicar al reves buscando como respuesta TTRa.
y para el 2.
busca una tabla de conversión de sistema decimal para medidad planas y aplica una regla de 3 igual a la de arriba
recuerda para graficar esto en un pseudocodigo no necesitas hacer ningun si solo multiplica y divide y listo.