“Conocimientos Programación>Visual Basics Programación

Cómo hacer una sala de chat en Visual Basic Express

2014/10/28
Tener el conocimiento de cómo crear una sala de chat utilizando Microsoft Visual Basic Express le puede ahorrar tiempo cuando se necesita para crear una aplicación de chat. Visual Basic Express está disponible de forma gratuita a cualquier persona interesada en la creación de aplicaciones utilizando VB.NET . Una sala de chat consiste en dos aplicaciones , el servidor y el cliente . El servidor se encarga de todas las conexiones de cliente , y la aplicación cliente conecta a los usuarios a la sala de servidor para enviar mensajes . Instrucciones
1

Inicie Microsoft Visual Basic Express, y luego haga clic en " Nuevo proyecto ". En el panel izquierdo de la pantalla , seleccione " Aplicación de consola. " Haga clic en " Aceptar".

2 Pulse la tecla "Ctrl " + " A ", y luego presione " Eliminar". Copie y pegue el siguiente código en tu " Module1.vb " para crear el programa de servidor :

Importaciones System.Net.Sockets

Imports System.Text Módulo


Module1

clientsList Dim As New Hashtable

Sub Main ()

ServerSocket Dim As New TcpListener ( 8888 )

ClientSocket As TcpClient

infiniteCounter Dim As Integer

counter As Integer

serverSocket.Start ()

msg ( " chat Server Started .... ")
counter

= 0

infiniteCounter = 0

Para infiniteCounter = 1 a 2

infiniteCounter = 1

contador + = 1

ClientSocket = serverSocket.AcceptTcpClient ()

Dim bytesFrom ( 10024 ) As Byte

dataFromClient dévil como secuencia

NetworkStream dévil como NetworkStream = _

clientSocket.GetStream ( )

networkStream.Read ( bytesFrom , 0, CInt ( clientSocket.ReceiveBufferSize ))

dataFromClient = System.Text.Encoding.ASCII.GetString ( bytesFrom )

dataFromClient = _

dataFromClient.Substring ( 0 , dataFromClient.IndexOf ( "$" ))

clientsList ( dataFromClient ) = ClientSocket

difusión ( dataFromClient + " Registrado " , dataFromClient , Falso)

msg ( dataFromClient + " Registrado sala de chat " )

cliente Dim As New handleClinet

client.startClient ( ClientSocket , dataFromClient , Sub

Sub msg ( mesg ByVal como secuencia)

mesg.Trim ()

Console.WriteLine ( ">> " + mesg )
< p > End Sub

emisión Sub Private (msg ByVal As String , _

uName ByVal como secuencia , bandera ByVal As Boolean )

Dim Elemento como
DictionaryEntry

Para cada elemento de clientsList

broadcastSocket As TcpClient

broadcastSocket = CType ( Item.Value , TcpClient )

broadcastStream dévil como NetworkStream = _

broadcastSocket.GetStream ()

broadcastBytes Dim As [ Byte ] ()

Si flag = true entonces

broadcastBytes = Encoding.ASCII.GetBytes ( uName + " dice: " + msg)

demás

broadcastBytes = Encoding.ASCII.GetBytes ( msg)

End If

broadcastStream.Write ( broadcastBytes , 0, broadcastBytes . Longitud )

broadcastStream.Flush ()

Siguiente

End Sub

Public Class handleClinet

ClientSocket Dim As
TcpClient

ClNO As String Dim

clientsList As Hashtable

Public Sub startClient ( ByVal inClientSocket Como TcpClient , _

clineNo ByVal As String , ByVal CList Como Hashtable )

Me.clientSocket = inClientSocket

Me.clNo = clineNo

Me.clientsList = CList

ctThread As threading.Thread = New threading.Thread ( AddressOf doChat )

ctThread.Start ()

End Sub

doChat Sub Private ()

infiniteCounter Dim As Integer Dim

RequestCount As Integer Dim

bytesFrom ( 10024 ) As Byte

dataFromClient dévil como secuencia

sendBytes Dim Como [ Byte ] ()

serverResponse Dim As String

RCOUNT dévil como secuencia

RequestCount = 0

Para infiniteCounter = 1 a 2

infiniteCounter = 1

Prueba

RequestCount = RequestCount + 1

NetworkStream dévil como NetworkStream = _

clientSocket.GetStream ()

networkStream.Read ( bytesFrom , 0, CInt ( clientSocket.ReceiveBufferSize ))

dataFromClient = System.Text.Encoding.ASCII.GetString ( bytesFrom )

dataFromClient = _

dataFromClient.Substring ( 0 , dataFromClient.IndexOf ( "$" ))

msg ( " Desde el cliente - " ClNO + + ": " + dataFromClient )

RCOUNT = Convert.ToString ( RequestCount )
emisión

( dataFromClient , ClNO , verdadero)

Catch ex As Exception

MsgBox ( ex.ToString )

End Try

Siguiente

End Sub

End Class

End Module
3

Inicie Microsoft Visual Basic Express y haga clic en "Nuevo proyecto ". En el panel izquierdo de la pantalla , seleccione " Aplicación de Windows Forms ". Haga clic en" Aceptar ". Haga clic en el " panel " , y luego haga doble clic en " caja de herramientas de cuadro de texto "para añadir un nuevo cuadro de texto . Añadir otros dos cuadros de texto. Agregue dos botones en el menú" Herramientas " .
Página 4

doble clic en el formulario y, a continuación, pulse la tecla "Ctrl " + "A" Press Copia y pega el siguiente código en el módulo " Form1.vb " para crear el programa cliente " Eliminar". :

Importaciones System.Net.Sockets

Imports System.Text

Public Class Form1

ClientSocket Dim As New System.Net.Sockets.TcpClient ()

serverStream dévil como NetworkStream

readData dévil como secuencia

infiniteCounter Dim As Integer

Private Sub Button1_Click ( remitente de ByVal como System.Object , _

ByVal e como System.EventArgs ) Handles Button1.Click

outStream As Byte () = _

System.Text.Encoding.ASCII.GetBytes ( TextBox2.Text + " $ " )

serverStream.Write ( outStream , 0, outStream.Length )

serverStream.Flush ()

End Sub

msj Private Sub ( )

Si Me.InvokeRequired Entonces

Me.Invoke (New MethodInvoker ( AddressOf msg) )

demás

TextBox1.Text = TextBox1.Text + Environment.NewLine + ">> " + readData

End If End Sub


Private Sub Button2_Click ( remitente de ByVal como System.Object , _
< p> ByVal e como System.EventArgs ) Handles Button2.Click

readData = " Conectados al servidor de chat ... "

msg ( )

clientSocket.Connect ( " 127.0.0.1 " , 8888 ) Label1.Text =

" Programa de socket de cliente - servidor conectado ... "

serverStream = clientSocket.GetStream ()

outStream Dim As Byte () = _
System.Text.Encoding.ASCII.GetBytes

( TextBox3.Text + " $" )

serverStream.Write ( outStream , 0, outStream.Length )

serverStream.Flush ()

ctThread Dim As threading.Thread = New threading.Thread ( AddressOf getMessage )

ctThread.Start ()

End Sub

Private Sub getMessage ()

Para infiniteCounter = 1 a 2

infiniteCounter = 1

serverStream = clientSocket.GetStream ()

buffSize As Integer

Instream Dim ( 10024 ) As Byte

buffSize = clientSocket.ReceiveBufferSize

serverStream.Read ( dentro de la corriente , 0, buffSize )

returndata As String = _

System.Text.Encoding.ASCII.GetString ( dentro de la corriente )

readData = " " + returndata

msg ( )
< p > Siguiente

End Sub End Class


5

ejecute el programa de servidor de primera con la tecla " F5 " , ya continuación, ejecute el programa cliente. Escriba su nombre en " TextBox3 " y haga clic en " Button2 " para conectar con el servidor. Escriba un mensaje en " TextBox2 , " y luego haga clic en " Button1 " para enviar un mensaje.

Visual Basics Programación
Cómo conseguir un valor decimal de un cuadro de texto
Cómo convertir las macros de Excel para Net
Cómo convertir String en doble Visual Basic
Cómo reemplazar varios cuadros de texto en Visual Basic
Cómo hacer que los corazones en un portátil
Cómo hacer un Keylogger en VB
Cómo calcular la intersección de dos líneas en Visual Basic
Cómo controlar un teclado en Visual Basic
Conocimientos Informáticos © http://www.ordenador.online