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.