Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Visual Basic 2005: Programa Chat

Estas en el tema de Visual Basic 2005: Programa Chat en el foro de Visual Basic clásico en Foros del Web. Hola amigos del foro. Se que este tema es muy complejo si se quiere hacer algo completo, pero bueno la verdad no se como empezar ...
  #1 (permalink)  
Antiguo 14/09/2008, 09:03
Avatar de moradazo  
Fecha de Ingreso: julio-2008
Ubicación: [email protected]
Mensajes: 355
Antigüedad: 15 años, 10 meses
Puntos: 2
De acuerdo Visual Basic 2005: Programa Chat

Hola amigos del foro.

Se que este tema es muy complejo si se quiere hacer algo completo, pero bueno la verdad no se como empezar y los códigos que he visto por internet son de VB6 los cuales no he comprendido mucho.

Quiero crear algo simple que no tenga tanta complejidad, me imagino que un timer para que actualice los comentarios mientras se van dando entre 2 personas, etc, ahorita no es necesario eso de transferir archivos, camaras web, chat de voz, etc lo único que necesito es una simple comunicación de texto con otra persona por internet.

Si me pudieran decir acá que temas debo estudiar y aprender, cuales debo investigar para poder desarrollar paso a paso este interesante tema.

Agradezco mucho su ayuda!
  #2 (permalink)  
Antiguo 14/09/2008, 12:28
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: Visual Basic 2005: Programa Chat

Hola,te recomiendo entonces que releas los ejemplos de visual basic 6 y los entiendas porque digamos que es la base...y aparte son muy faciles..en el caso de visualb asic 6 maneja un control llamado Winsock para manejar los puertos del servidor-cliente y asi establecer la comunicacion y el envio de datos...ni siquiera es necesario un control Timer...porque cuando mandas un dato, el otro tiene el puerto a la escucha constantemente y actualiza solo si le llega un dato...en visual basic .NET ahora hay clases para manejar los puertos...pero me parece por lo que he visto por ahi que se puede usar sin problemas en control Winsock de visual basic 6 en visual .NET

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #3 (permalink)  
Antiguo 14/09/2008, 15:41
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Visual Basic 2005: Programa Chat

Winsock, es una opcion en net tienes mas opciones como usar la clase

Socket, o si tu chat se basa en http usar objetos de las clases HttpWebRequest para enviar y recibir datos.

pero la clase socket en general es la redundante en todo esto.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #4 (permalink)  
Antiguo 15/09/2008, 12:12
Avatar de moradazo  
Fecha de Ingreso: julio-2008
Ubicación: [email protected]
Mensajes: 355
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Visual Basic 2005: Programa Chat

Muchas gracias por sus respuestas.
Con respecto a Winsock entiendo que es un control que trae Visual Basic 6, pero en .Net no sale como control, ¿Donde lo puedo localizar?

He buscado esta respuesta por internet y me dicen que interactuar con Winsock en .Net es más complejo (además el control no está en el ToolBox del VB.Net), que hay herramientas para conexión entre servidores más útiles y potentes como Web Services, .Net Remoting, Windows Communication Foundation, pero a todo esto como puedo empezar a usarlos, cuales de esos servirán para el Chat que quiero desarrollar acá en el foro?

Muchas gracias!
  #5 (permalink)  
Antiguo 15/09/2008, 13:06
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Visual Basic 2005: Programa Chat

http://msdn.microsoft.com/en-us/libr...t.sockets.aspx
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #6 (permalink)  
Antiguo 15/09/2008, 22:46
Avatar de moradazo  
Fecha de Ingreso: julio-2008
Ubicación: [email protected]
Mensajes: 355
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Visual Basic 2005: Programa Chat

Hola, gracias por las respuestas, encontré este código:

Código PHP:
Imports System
Imports System
.Text
Imports System
.IO
Imports System
.Net
Imports System
.Net.Sockets
Imports Microsoft
.VisualBasic

Public Class GetSocket

    
Private Shared Function ConnectSocket(ByVal server As StringByVal port As Integer) As Socket
        Dim s 
As Socket Nothing
        Dim hostEntry 
As IPHostEntry Nothing
 
        hostEntry 
Dns.GetHostEntry(server)
        
Dim address As IPAddress

        
For Each address In hostEntry.AddressList
            Dim endPoint 
As New IPEndPoint(addressport)
            
Dim tempSocket As New Socket(endPoint.AddressFamilySocketType.StreamProtocolType.Tcp)

            
tempSocket.Connect(endPoint)

            If 
tempSocket.Connected Then
                s 
tempSocket
                
Exit For
            
End If
        
Next address

        
Return s
    End 
Function


    Private 
Shared Function SocketSendReceive(ByVal server As String_
    ByVal port 
As Integer) As String

        Dim ascii 
As Encoding Encoding.ASCII
        Dim request 
As String "GET / HTTP/1.1" ControlChars.Cr _
        ControlChars
.Lf "Host: " server ControlChars.Cr _
        ControlChars
.Lf "Connection: Close" ControlChars.Cr _
        ControlChars
.Lf ControlChars.Cr ControlChars.Lf

        Dim bytesSent 
As [Byte]() = ascii.GetBytes(request)
        
Dim bytesReceived(255) As [Byte]

        
Dim s As Socket ConnectSocket(serverport)

        If 
s Is Nothing Then
            
Return "Connection failed"
        
End If

        
s.Send(bytesSentbytesSent.Length0)

        
Dim bytes As Int32

        Dim page 
As [String] = "Default HTML page on " server ":" _
        
ControlChars.Cr ControlChars.Lf

        
Do
            
bytes s.Receive(bytesReceivedbytesReceived.Length0)
            
page page Encoding.ASCII.GetString(bytesReceived0bytes)
        
Loop While bytes 0

        
Return page
    End 
Function

    Public 
Overloads Shared Sub Main()
        
Main(System.Environment.GetCommandLineArgs())
    
End Sub


    
Private Overloads Shared Sub Main(ByVal args() As String)
        
Dim host As String
        Dim port 
As Integer 80

        
If args.Length 1 Then
            host 
Dns.GetHostName()
        Else
            
host args(1)
        
End If

        
Dim result As String SocketSendReceive(hostport)

        
Console.WriteLine(result)
    
End Sub
End 
Class 
Si alguien me puede ayudar que hace cada función más o menos, gracias!
  #7 (permalink)  
Antiguo 16/09/2008, 10:24
Avatar de moradazo  
Fecha de Ingreso: julio-2008
Ubicación: [email protected]
Mensajes: 355
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Visual Basic 2005: Programa Chat

Tengo este diseño:



Supongo que el boton de escuchar es para conectarme con la IP de otra PC.
Lo que quiero saber es digamos que accion debe tener el boton enviar, que mas me puede faltar, el codigo de sockets que escribi mas arriba seria util para el boton escuchar?

Gracias!
  #8 (permalink)  
Antiguo 16/09/2008, 14:02
Avatar de moradazo  
Fecha de Ingreso: julio-2008
Ubicación: [email protected]
Mensajes: 355
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Visual Basic 2005: Programa Chat

Hola a todos!

Siguiendo con el proyecto del chat, aca hice algo sencillo, funciona en red local:

Código PHP:
Public Class Form1

    
Private Sub Boton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BNEnviar.Click
        Timer_Actualiza
.Enabled False
        Dim s 
As String
        s 
TextBox4.Text
        TextBox2
.AppendText(Welcome.TBuser.Text ": " vbNewLine)
        Try
            
FileOpen(1"\\direccion de la red\documento.txt")
        Catch 
ex As System.Exception
            
Exit Sub
        End 
Try
        Print(
1TextBox2.Text)
        
FileClose(1)
        
TextBox4.Clear()
        
Timer_Actualiza.Enabled True
    End Sub
    
Private Sub Timer_Actualiza_Tick(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Timer_Actualiza.Tick
        Dim FILE_NAME 
As String "\\direccion de la red\documento.txt"
        
Dim variable As String ""
        
Try
            If 
System.IO.File.Exists(FILE_NAME) = True Then
                Dim objReader 
As New System.IO.StreamReader(FILE_NAMESystem.Text.Encoding.Default)
                Do While 
objReader.Peek() <> -1
                    variable 
variable objReader.ReadLine() & vbNewLine
                Loop
                objReader
.Close()
                
TextBox2.Text variable
            End 
If
        Catch 
ex As System.Exception
            
Exit Sub
        End 
Try
        
FileClose(1)
    
End Sub

    
Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
        Timer_Actualiza
.Start()
    
End Sub


    
Private Sub Form1_FormClosed(ByVal sender As System.ObjectByVal e As System.Windows.Forms.FormClosedEventArgsHandles MyBase.FormClosed
        
If System.IO.File.Exists("\\direccion de la red\documento.txt") = True Then
            My
.Computer.FileSystem.DeleteFile("\\direccion de la red\documento.txt")
        Else
            Exit 
Sub
        End 
If
        
Me.Close()
    
End Sub
End 
Class 
Con esto lo que hace es que cuando se digita un texto, este antes de mostrarse en la ventana de dialogo, se guarda en un archivo txt, despues la ventana lo jala haciendole lectura, para eso es el timer para que actualize rapidamente.

Lo que quiero es que me funcione a nivel de internet, me han dicho que mi propia PC puede ser un server, me gustaria saber como puedo hacerlo. Muchas gracias!
  #9 (permalink)  
Antiguo 17/09/2008, 08:54
Avatar de moradazo  
Fecha de Ingreso: julio-2008
Ubicación: [email protected]
Mensajes: 355
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Visual Basic 2005: Programa Chat

Hola amigos del foro.

Alguien me podria dar una mano en como usar esta funcion:

Public Const flashw_timernofg = 12 'parpadea hasta que se active la ventana

Es que quiero que cuando la ventana reciba un mensaje, parpadee hasta que el usuario la active. Gracias!
  #10 (permalink)  
Antiguo 17/09/2008, 09:12
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: Visual Basic 2005: Programa Chat

Esa no es una función, es una constante, personalmente no la conozco.

Mira este artículo:
http://www.recursosvisualbasic.com.a...lashwindow.htm
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 17/09/2008, 09:25
Avatar de moradazo  
Fecha de Ingreso: julio-2008
Ubicación: [email protected]
Mensajes: 355
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Visual Basic 2005: Programa Chat

Ok Gracias David por la documentacion.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:36.