“Conocimientos Programación>Visual Basics Programación

Cómo codificar Software chat sin utilizar una base de datos

2014/11/4
Conocer cómo codificar una sala de chat sin necesidad de utilizar una base de datos puede ayudarle a crear un servidor /aplicación cliente sin tener que dedicar tiempo a diseñar una base de datos . Un programa de chat se crea mediante el uso de dos aplicaciones , el cliente y el servidor. La aplicación de servidor se encargará de todas las conexiones de los clientes para establecer la comunicación . El programa cliente se instala en cualquier ordenador querer conectar con el servidor de chatear con otros clientes . Puede crear esta aplicación utilizando Microsoft Visual Basic.NET , también conocido como VB.NET . Cosas que necesitará
Microsoft Visual Basic Express
Ver Más instrucciones
1

Abra Microsoft Visual Basic Express, haga clic en " Nuevo proyecto ... " en el panel izquierdo de la pantalla, a continuación, seleccione " Aplicación de consola. " Haga clic en " Aceptar".

2 Pulse la tecla "Ctrl " y " A ", después pulse en "Eliminar " para eliminar todo el código existente. Copia y pega el código de abajo en su " Module1.vb " para crear la aplicación de servidor :

Importaciones System.Net.Sockets

Imports System.Text Módulo


Module1

hshTbl Dim As New Hashtable

Sub Main ()

svrSckt Dim As New TcpListener ( 8888 )

TClient As TcpClient

infntCntr Dim As Integer

cntr Dim As Integer

svrSckt.Start ()

msg ( "Servidor de introducción para charlar .... " )

cntr = 0

infntCntr = 0

Para infntCntr = 1 a 2

infntCntr = 1

cntr + = 1

TClient = svrSckt.AcceptTcpClient ()

Dim btsFrom ( 10024 ) As Byte

datosCliente dévil como secuencia

NetworkStream dévil como NetworkStream = _

tClient.GetStream ()

networkStream.Read ( btsFrom , 0, CInt ( tClient.ReceiveBufferSize ))

datosCliente = System.Text.Encoding.ASCII.GetString ( btsFrom )

datosCliente = _

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

hshTbl ( datosCliente ) = TClient

difusión ( datosCliente + " se ha unido " , datosCliente , False )

msg ( datosCliente + " se ha unido a la sala de chat " )

cliente Dim As New handleClinet

client.startClient ( TClient , datosCliente , Sub

Sub MSG ( glutamato monosódico ByVal como secuencia)

msg.Trim ()

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

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

usrname ByVal As String , ByVal flg As Boolean )

dicEntry Dim As
DictionaryEntry

En cada dicEntry En hshTbl

broadcastSocket As TcpClient

broadcastSocket = CType ( dicEntry.Value , TcpClient )

broadcastStream dévil como NetworkStream = _

broadcastSocket.GetStream ()

broadcastBytes Dim Como [ Byte ] ()

Si flg = TRUE entonces

broadcastBytes = Encoding.ASCII.GetBytes ( usrname + " 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

TClient Dim As
TcpClient

ClNO As String Dim

hshTbl As Hashtable

Public Sub startClient ( ByVal inClientSocket Como TcpClient , _

clnNum ByVal As String , ByVal hsTbl Como Hashtable )

Me.tClient = inClientSocket

Me.clNo = clnNum

Me.hshTbl = hsTbl

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

ctThread.Start ()

End Sub

doChat Sub Private ()

infntCntr Dim As Integer Dim

rqstCnt As Integer Dim

btsFrom ( 10024 ) As Byte

datosCliente dévil como secuencia

btsSend As [ Byte ] ()

responseSrvr Dim As String

RCNT dévil como secuencia

rqstCnt = 0

Para infntCntr = 1 a 2

infntCntr = 1

Prueba

rqstCnt = rqstCnt + 1

NetworkStream dévil como NetworkStream = _

tClient.GetStream ()

networkStream.Read ( btsFrom , 0, CInt ( tClient.ReceiveBufferSize ))

datosCliente = System.Text.Encoding.ASCII.GetString ( btsFrom )

datosCliente = _

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

msg ( " Desde el cliente :" + ClNO + ": " + datosCliente )

RCNT = Convert.ToString ( rqstCnt )
emisión

( datosCliente , ClNO , verdadero)

Catch ex As Exception

MsgBox ( ex.ToString )

End Try

Siguiente

End Sub

End Class

End Module
3

Abra una nueva instancia de Microsoft Visual Basic Express , haga clic en "Nuevo proyecto ... " en el panel izquierdo de la pantalla, a continuación, seleccione " Aplicación de Windows Forms ". Haga clic en " Aceptar". Haga clic en el panel " Herramientas " , haga doble clic en " TextBox " para añadir un nuevo cuadro de texto . Añadir otros dos cuadros de texto utilizando el mismo método. Agregue dos botones de en el menú " Herramientas " .
4

doble clic en el formulario, pulse la tecla "Ctrl " y " a ", a continuación, pulse "Eliminar " para eliminar todo el código existente. Copia y pega el código de abajo en su módulo " Form1.vb " para crear el programa cliente :

Importaciones System.Net.Sockets

Imports System.Text

Public Class Form1

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

srvrStrm dévil como NetworkStream

rddata dévil como secuencia

infCntr As Integer

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

ByVal e como System.EventArgs ) Handles Button1.Click

streamOut As Byte () = _

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

srvrStrm.Write ( streamOut , 0, streamOut.Length )

srvrStrm.Flush ()

End Sub

msj Sub Private ()

Si Me.InvokeRequired Entonces

Me.Invoke (New MethodInvoker ( AddressOf msg) )

demás

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

End If End Sub


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

ByVal e como System.EventArgs ) Handles Button2.Click

rddata = " Conectados a charlar servidor ... "

msg ( )

clntSckt.Connect ( "127.0.0.1 " , 8888 )

srvrStrm = clntSckt.GetStream ()

streamOut As Byte () = _
< p> System.Text.Encoding.ASCII.GetBytes ( TextBox3.Text + " $" )

srvrStrm.Write ( streamOut , 0, streamOut.Length )

srvrStrm.Flush ()

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

ctThread.Start ()

End Sub Private Sub

getMessage ()

Para infCntr = 1 a 2

infCntr = 1

srvrStrm = clntSckt.GetStream ()

buffSize Dim As Integer

Instream Dim ( 10024 ) As Byte

buffSize = clntSckt.ReceiveBufferSize

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

returndata As String = _
< p> System.Text.Encoding.ASCII.GetString ( dentro de la corriente )

rddata = "" + returndata

msg ()

Siguiente

End Sub

End Class
5

Ejecute el programa de servidor de primera con la tecla " F5 ". Inicie el programa cliente con la tecla " F5 ". Escriba su nombre en " TextBox3 ", luego haga clic en " Button2 "para establecer una conexión con el programa servidor.
6

Escriba un mensaje en" TextBox2 , "y luego haga clic en" Button1 " para enviar el mensaje . el mensaje se mostrará en la ventana de salida del servidor.

Visual Basics Programación
Cómo utilizar un Motorola RAZR2 Como Webcam
Cómo borrar la cuadrícula de datos en VB.Net
¿Cómo puedo hacer un evento MouseClick mediante Visual Basic
Cómo leer una línea de texto delimitado por tabuladores en VBA
Cómo eliminar un archivo en Visual Basic
Cómo cambiar el nombre de carpetas en Visual Basic
Acceso: VBA Export Query
Cómo configurar los valores del índice de ComboBox para VB
Conocimientos Informáticos © http://www.ordenador.online