Hoe kan ik een Chat Room in Visual Basic Express Make

hebben de kennis van hoe je een chatruimte met Microsoft Visual Basic Express kunt u tijd besparen wanneer je nodig hebt om een ​​chatruimte toepassing creëren.Visual Basic Express is gratis beschikbaar voor iedereen die geïnteresseerd is in het maken van toepassingen met behulp van VB.NET.Een chatroom omvat twee applicaties, de server en de client.De server behandelt alle client-verbindingen, en de client-applicatie verbindt gebruikers met de server ruimte om berichten te versturen.

instructies

  1. Start Microsoft Visual Basic Express, en klik vervolgens op "Nieuw project."Aan de linkerkant van het scherm, selecteert u "Console Application."Klik op "OK."

  2. Druk "Ctrl" + "A" en vervolgens op "Verwijderen."Kopieer en plak de volgende code in uw "Module1.vb" naar de server programma te maken:

    Imports System.Net.Sockets

    Imports System.Text

    Module Module1

    Dim clientsList als Nieuwe Hashtable

    Sub Main ()

    Dim ServerSocket als Nieuwe TcpListener (8888)

    Dim clientSocket Zoals TCPClient

    Dim infiniteCounter als Geheel

    Dim teller As Integer

    serverSocket.Start ()

    msg ("Chat Server slag ....")

    teller= 0

    infiniteCounter = 0

    Voor infiniteCounter = 1 tot 2

    infiniteCounter = 1

    teller + = 1

    clientSocket = serverSocket.AcceptTcpClient ()

    Dim bytesFrom (10024) As Byte

    Dim dataFromClient als Koord

    Dim networkStream Zoals 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

    uitzending (dataFromClient + "Geregistreerd", dataFromClient, False)

    msg (dataFromClient + "Geregistreerdchat room ")

    Dim client als Nieuwe handleClinet

    client.startClient (clientSocket, dataFromClient, clientsList)

    Volgende

    clientSocket.Close ()

    serverSocket.Stop ()

    msg (" exit ")

    Console.ReadLine ()

    End Sub

    Sub msg (ByVal mesg als Koord)

    mesg.Trim ()

    Console.WriteLine ("& gt; & gt;"+ Mesg)

    End Sub

    Private Sub uitzending (ByVal msg als Koord, _

    ByVal uname als Koord, ByVal vlag Zoals Boolean)

    Dim Item Zoals DictionaryEntry

    voor elk item in clientsList

    Dim broadcastSocket alsTCPClient

    broadcastSocket = CType (Item.Value, TCPClient)

    Dim broadcastStream Zoals NetworkStream = _

    broadcastSocket.GetStream ()

    Dim broadcastBytes Zoals [Byte] ()

    Als vlag = Waar Dan

    broadcastBytes = Encoding.ASCII.GetBytes (uname + ", zegt:" + msg)

    Else

    broadcastBytes = Encoding.ASCII.GetBytes (msg)

    Eind als

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

    broadcastStream.Flush ()

    Volgende

    End Sub

    Public Class handleClinet

    Dim clientSocket Zoals TCPClient

    Dim clNo als Koord

    Dim clientsList Zoals Hashtable

    Public Sub startClient (ByVal inClientSocket Zoals TCPClient, _

    ByVal clineNoals Koord, ByVal clist als hash)

    Me.clientSocket = inClientSocket

    Me.clNo = clineNo

    Me.clientsList = clist

    Dim ctThread als Threading.Thread = Nieuwe Threading.Thread (AddressOf doChat)

    ctThread.start ()

    End Sub

    Private Sub doChat ()

    Dim infiniteCounter als Geheel

    Dim requestCount als Geheel

    Dim bytesFrom (10024) As Byte

    Dim dataFromClient als Koord

    Dim sendBytes Zoals [Byte] ()

    Dim serverResponse als Koord

    Dim RCount als Koord

    requestCount = 0

    Voor infiniteCounter = 1 tot 2

    infiniteCounter = 1

    Probeer

    requestCount = requestCount + 1

    Dim networkStream Zoals NetworkStream = _

    clientSocket.GetStream ()

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

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

    dataFromClient = _

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

    msg ("Van klant -" + clNo + ":" + dataFromClient)

    RCount = Convert.ToString (requestCount)

    uitzending (dataFromClient, clNo, True)

    Catch ex als Uitzondering

    MsgBox (ex.ToString)

    End Probeer

    Volgende

    End Sub

    End Class

    End Module

  3. Start Microsoft Visual Basic Express, en klik vervolgens op "Nieuw project."aan de linkerkant van het scherm, selecteert u "Windows Forms Application". Klik op "OK". Klik op de "Toolbox" venster, en dubbelklik vervolgens op "TextBox" naar een nieuw tekstvak toe te voegen.Voeg twee tekstvakken.Voeg twee knoppen in het menu "Toolbox".

  4. Dubbelklik op het formulier en druk op de "Ctrl" + "A."Druk op "Verwijderen."Kopieer en plak de volgende code in uw "Form1.vb" module aan de client-programma te maken:

    Imports System.Net.Sockets

    Imports System.Text

    Public Class Form1

    Dim clientSocket als Nieuwe System.Net.Sockets.TCPClient ()

    Dim serverStream Zoals NetworkStream

    Dim readdata als Koord

    Dim infiniteCounter As Integer

    Private Sub Button1_Click (ByVal afzender als System.Object, _

    ByVal e als System.EventArgs) Handles Button1.Click

    DimoutStream As Byte () = _

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

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

    serverStream.Flush ()

    End Sub

    Private Sub msg ()

    Als Me.InvokeRequired Dan

    Me.Invoke (New MethodInvoker (AddressOf msg))

    Else

    TextBox1.Text = TextBox1.Text + Environment.NewLine + "& gt; & gt;"+ Readdata

    Eind als

    End Sub

    Private Sub Button2_Click (ByVal afzender als System.Object, _

    ByVal e als System.EventArgs) Handles Button2.Click

    readdata =" conected naar Server Chat ..."

    msg ()

    clientSocket.Connect (" 127.0.0.1 ", 8888)

    'Label1.Text =" Client Socket Program - Server Connected ... "

    serverStream = clientSocket.GetStream ()

    DimoutStream As Byte () = _

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

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

    serverStream.Flush ()

    Dim ctThread Zoals Threading.Thread = Nieuwe Threading.Thread (AddressOf GetMessage)

    ctThread.Start ()

    End Sub

    Private Sub GetMessage ()

    Voor infiniteCounter = 1 tot 2

    infiniteCounter = 1

    serverStream =clientSocket.GetStream ()

    Dim buffSize als Geheel

    Dim InStream (10024) As Byte

    buffSize = clientSocket.ReceiveBufferSize

    serverStream.Read (instream, 0, buffSize)

    Dim returndata als Koord = _

    System.Text.Encoding.ASCII.GetString (InStream)

    readdata = "" + returndata

    msg ()

    Volgende

    End Sub

    End Class

  5. Run de server programma eerst door op "F5",en vervolgens de client-programma.Typ uw naam in "Textbox3" en klik op "Button2" om verbinding met de server.Typ een bericht in "TextBox2," en vervolgens op "Button1" om een ​​bericht te sturen.

663
0
2
Visual Basics Programming