Hvordan lage et chatterom i Visual Basic Express

Å ha kunnskap om hvordan du oppretter et chatterom med Microsoft Visual Basic Express kan du spare tid når du trenger for å lage et chatterom søknad. Visual Basic Express er tilgjengelig gratis for alle som er interessert i å lage programmer som bruker VB.NET. Et chatterom innebærer to programmer, serveren og klienten. Serveren håndterer alle klienttilkoblinger, og klientprogrammet kobler brukere til serverrommet til å sende meldinger.

Bruksanvisning

1 Start Microsoft Visual Basic Express, og klikk deretter på "New Project". På ruten til venstre på skjermen, velg "Console Application". Klikk på "OK".

2 Trykk "Ctrl" + "A", og trykk deretter på "Slett". Kopier og lim inn følgende kode inn i "Module1.vb" for å lage tjenerprogrammet:

import System.Net.Sockets

importen System.Text

modul module1

Dim clientsList As New Hashtable

Sub main ()

Dim Server som ny TcpListener (8888)

Dim clientSocket Som TcpClient

Dim infiniteCounter As Integer

Dim teller As Integer

serverSocket.Start ()

msg ( "Chat Server i gang ....")

teller = 0

infiniteCounter = 0

For infiniteCounter = 1 til 2

infiniteCounter = 1

teller + = 1

clientSocket = serverSocket.AcceptTcpClient ()

Dim bytesFrom (10024) As Byte

Dim dataFromClient As String

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

kringkasting (dataFromClient + "Nye", dataFromClient, False)

msg (dataFromClient + "Nye chat room")

Dim klient som ny handleClinet

client.startClient (clientSocket, dataFromClient, clientsList)

neste

clientSocket.Close ()

serverSocket.Stop ()

msg ( "exit")

Console.ReadLine ()

End Sub

Sub msg (ByVal mesg As String)

mesg.Trim ()

Console.WriteLine ( ">>" + mesg)

End Sub

Private Sub kringkasting (ByVal msg As String, _

ByVal uname As String, ByVal flagg As Boolean)

Dim Element As DictionaryEntry

For hvert element i clientsList

Dim broadcastSocket Som TcpClient

broadcastSocket = CTYPE (Item.Value, TcpClient)

Dim broadcastStream Som NetworkStream = _

broadcastSocket.GetStream ()

Dim broadcastBytes Som [Byte] ()

Hvis flagget = True Deretter

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

Ellers

broadcastBytes = Encoding.ASCII.GetBytes (msg)

Slutt om

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

broadcastStream.Flush ()

neste

End Sub

Public Class handleClinet

Dim clientSocket Som TcpClient

Dim clNo As String

Dim clientsList Som hashtabellen

Public Sub startClient (ByVal inClientSocket Som TcpClient, _

ByVal clineNo As String, ByVal Clist As hashtabellen)

Me.clientSocket = inClientSocket

Me.clNo = clineNo

Me.clientsList = Clist

Dim ctThread Som Threading.Thread = Ny Threading.Thread (AddressOf doChat)

ctThread.Start ()

End Sub

Private Sub doChat ()

Dim infiniteCounter As Integer

Dim requestCount As Integer

Dim bytesFrom (10024) As Byte

Dim dataFromClient As String

Dim sendBytes Som [Byte] ()

Dim serverResponse As String

Dim rCount As String

requestCount = 0

For infiniteCounter = 1 til 2

infiniteCounter = 1

Prøve

requestCount = requestCount + 1

Dim networkStream Som NetworkStream = _

clientSocket.GetStream ()

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

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

dataFromClient = _

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

msg ( "Fra klient -" + clNo + ":" + dataFromClient)

rCount = Convert.ToString (requestCount)

kringkasting (dataFromClient, clNo, sann)

Catch ex As Exception

MsgBox (ex.ToString)

End Try

neste

End Sub

End Class

End Module

3 Start Microsoft Visual Basic Express, og klikk deretter på "New Project". På ruten til venstre på skjermen, "Forms Windows Application". Velg Klikk på "OK". Klikk på "Toolbox" ruten, og dobbeltklikk på "TextBox" for å legge til en ny tekstboks. Legg til to flere tekstbokser. Legg til to knapper fra "Toolbox" -menyen.

4 Dobbeltklikk på skjemaet, og deretter Trykk "Ctrl" + "A." Trykk på "Slett". Kopier og lim inn følgende kode inn i "Form1.vb" modul for å opprette klientprogrammet:

import System.Net.Sockets

importen System.Text

Public Class Form1

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

Dim serverStream Som NetworkStream

Dim readData As String

Dim infiniteCounter As Integer

Private Sub button1_click (ByVal sender As System.Object, _

ByVal e As System.EventArgs) Håndtak Button1.Click

Dim outStream As Byte () = _

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

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

serverStream.Flush ()

End Sub

Private Sub msg ()

Hvis Me.InvokeRequired Deretter

Me.Invoke (New MethodInvoker (AddressOf msg))

Ellers

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

Slutt om

End Sub

Private Sub Button2_Click (ByVal sender As System.Object, _

ByVal e As System.EventArgs) Håndtak Button2.Click

readData = "conected til Chat Server ..."

msg ()

clientSocket.Connect ( "127.0.0.1", 8888)

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

serverStream = clientSocket.GetStream ()

Dim outStream As Byte () = _

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

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

serverStream.Flush ()

Dim ctThread Som Threading.Thread = Ny Threading.Thread (AddressOf GetMessage)

ctThread.Start ()

End Sub

Private Sub GetMessage ()

For infiniteCounter = 1 til 2

infiniteCounter = 1

serverStream = clientSocket.GetStream ()

Dim buffSize As Integer

Dim Instream (10024) As Byte

buffSize = clientSocket.ReceiveBufferSize

serverStream.Read (Instream, 0, buffSize)

Dim returndata As String = _

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

readData = "" + returndata

msg ()

neste

End Sub

End Class

5 Kjør tjenerprogrammet først ved å trykke "F5", og deretter kjøre klientprogrammet. Skriv navnet ditt i "Textbox3" og klikk "Button2" for å koble til serveren. Skriv en melding i "TextBox2," og deretter "Button1" for å sende en melding.