Het hebben van de kennis van hoe je een chatroom met Microsoft Visual Basic Express kunt u tijd besparen wanneer u een chatruimte applicatie te 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 toepassingen , de server en de client . De server behandelt alle client- verbindingen het , en de client- applicatie verbindt de gebruiker met de server ruimte om berichten te verzenden . Instructies 1 Start Microsoft Visual Basic Express en klik op ' Nieuw project . " Op het linkerpaneel van het scherm , selecteer " Console Application . " Klik op "OK . " Druk "Ctrl " 2 + " A , " en druk 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 < br Dim clientsList > als Nieuwe Hashtable Sub Main ( ) Dim ServerSocket als Nieuwe TcpListener ( 8888 ) Dim clientSocket Zoals TCPClient Dim infiniteCounter als Geheel Dim teller als Geheel serverSocket.Start ( ) msg ( " Chat Server Gestart .... " ) teller = 0 infiniteCounter = 0 infiniteCounter = 1 To 2 infiniteCounter = 1 teller + = 1 clientSocket = serverSocket.AcceptTcpClient ( ) op Dim bytesFrom ( 10.024 ) als 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 + " Aangemeld " , dataFromClient , msg valse ) op Twitter ( dataFromClient + " Geregistreerd chat room " ) Dim client als Nieuwe handleClinet client.startClient ( clientSocket , dataFromClient , Sub Sub msg ( ByVal mesg als Koord ) mesg.Trim ( ) Console.WriteLine ( " >> " + mesg ) End Sub Private Sub uitzending ( ByVal msg As String , _ ByVal uname als Koord , ByVal vlag zoals Van Boole ) Dim Item Zoals DictionaryEntry voor elk item in clientsList Dim broadcastSocket Zoals TCPClient broadcastSocket = C ( Item.Value , TCPClient ) Dim broadcastStream Zoals NetworkStream = _ broadcastSocket.GetStream ( ) Dim broadcastBytes Zoals [ Byte ] ( ) op Als flag = True broadcastBytes dan = Encoding.ASCII.GetBytes ( uname + " zegt : " + msg ) op Else broadcastBytes = Encoding.ASCII.GetBytes ( msg ) End Als broadcastStream.Write ( broadcastBytes , 0 , broadcastBytes . lengte ) 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 clineNo als Koord , ByVal clist Zoals hash ) < > Me.clientSocket = inClientSocket Me.clNo = clineNo Me.clientsList = clist Dim ctThread Zoals Threading.Thread = Nieuw Threading.Thread br ( AddressOf doChat ) ctThread.Start ( ) op End Sub Private Sub doChat ( ) Dim infiniteCounter als Geheel Dim requestCount als Geheel Dim bytesFrom ( 10.024 ) als Byte Dim dataFromClient als Koord Dim sendBytes Zoals [ Byte ] ( ) Dim serverResponse als Koord Dim rCount als Koord requestCount = 0 infiniteCounter = 1 To 2 infiniteCounter = 1 Try requestCount = requestCount + 1 Dim NetworkStream Zoals NetworkStream = _ clientSocket.GetStream ( ) networkStream.Read ( bytesFrom , 0 , CInt ( clientSocket.ReceiveBufferSize ) ) op dataFromClient = System.Text.Encoding.ASCII.GetString ( bytesFrom ) dataFromClient = _ dataFromClient.Substring ( 0 , dataFromClient.IndexOf ( " $ " ) ) msg ( " From client - " + ClNO + " : " + dataFromClient ) rCount = Convert.ToString ( requestCount ) uitzending ( dataFromClient , ClNO , ware ) op Catch ex als Uitzondering MsgBox ( ex.ToString ) End of Try Volgende End of Sub End Class End Module 3 Start Microsoft Visual Basic Express , en klik vervolgens op " New Project . " Op het linkerpaneel van het scherm , selecteer " Windows Forms Application . " Klik op" OK . " Klik op de " Toolbox " venster , en dubbelklik op " TextBox "om een nieuw tekstvak toe te voegen . Voeg nog twee tekstvakken . Voeg twee knoppen van de " " menu Toolbox . < br Goedkope 4 > Dubbelklik op het formulier , en vervolgens Druk op " Ctrl " + " A. " Press Kopieer en plak de volgende code in uw " Form1.vb " module aan de client-programma creëren " Verwijderen. " : Invoer 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 als Geheel Private Sub Button1_Click ( ByVal afzender Zoals System.Object , _ < br > ByVal e als System.EventArgs ) Handles Button1.Click Dim uitstroommanagement als Byte ( ) = _ System.Text.Encoding.ASCII.GetBytes ( TextBox2.Text + " $ " ) serverStream.Write ( uitstroommanagement , 0 , serverStream.Flush ( ) outStream.Length ) op End Sub Private Sub msg ( ) op Als Me.InvokeRequired Me.Invoke dan ( New MethodInvoker ( AddressOf msg ) ) op Twitter Else TextBox1.Text = TextBox1.Text + Environment.NewLine + " >> " + readdata End Als End of Sub Private Sub Button2_Click ( ByVal afzender als System.Object , _ ByVal e als System.EventArgs ) Handles Button2.Click readdata = " conected naar Server Chat ... " msg ( ) op clientSocket.Connect ( " " ' Label1.Text = , 8888 ) " Client Socket Program 127.0.0.1 - Server Connected ... " ServerStream = clientSocket.GetStream ( ) Dim uitstroommanagement als Byte ( ) = _ System.Text.Encoding.ASCII.GetBytes ( TextBox3.Text + " $ " ) serverStream.Write ( uitstroommanagement , 0 , outStream.Length ) < br serverStream.Flush ( ) > Dim ctThread Zoals Threading.Thread = Nieuw Threading.Thread ( AddressOf getMessage ) ctThread.Start ( ) End Sub < br > Private Sub getMessage ( ) op infiniteCounter = 1 To 2 infiniteCounter = 1 ServerStream = clientSocket.GetStream ( ) op Dim buffSize als Geheel Dim instream ( 10024 ) Zoals Byte buffSize = clientSocket.ReceiveBufferSize serverStream.Read ( instream , 0 , buffSize ) op Twitter Dim returndata As String = _ System.Text.Encoding.ASCII.GetString ( instream ) readdata = " " + returndata msg ( ) op Volgende End Sub End Class 5 Voer het server programma voor het eerst door op " F5 " , en vervolgens het clientprogramma . Typ uw naam in " Textbox3 " en klik op " Button2 " verbinding maken met de server . Typ een bericht in " TextBox2 , " en klik op " Button1 " om een bericht te verzenden .
|