Weten hoe je een chatruimte coderen zonder gebruik van een database kan u helpen een server /client- applicatie te maken zonder tijd te besteden ontwerpen van een database . Een chat- programma wordt gemaakt met behulp van twee applicaties , de client en de server . De server applicatie zal alle client- verbindingen om de communicatie . De client -programma is geïnstalleerd op elke computer te willen verbinden met de server om te chatten met andere klanten . U kunt deze toepassing met behulp van Microsoft Visual Basic.NET , ook wel bekend als VB.NET maken . Wat je nodig hebt Microsoft Visual Basic Express Toon Meer Aanwijzingen 1 Open Microsoft Visual Basic Express , klikt u op " New Project ... " aan de linkerkant van uw scherm , selecteer vervolgens " Console Application . " Klik op "OK . " Druk " Ctrl " 2 en " A ", druk daarna op " Delete " om alle bestaande code te verwijderen . Kopieer en plak de code hieronder in uw " Module1.vb " naar de server applicatie te maken : Imports System.Net.Sockets Imports System.Text Module Module1 < br Dim hshTbl > als Nieuwe Hashtable Sub Main ( ) Dim svrSckt als Nieuwe TcpListener ( 8888 ) Dim tClient Zoals TCPClient Dim infntCntr als Geheel Dim cntr als Geheel svrSckt.Start ( ) msg ( " Server Gestart voor chatten .... " ) op Twitter cntr = 0 infntCntr = 0 infntCntr = 1 To 2 infntCntr = 1 cntr + = 1 tClient = svrSckt.AcceptTcpClient ( ) op Dim btsFrom ( 10.024 ) als Byte Dim ClientData als Koord Dim NetworkStream Zoals NetworkStream = _ tClient.GetStream ( ) networkStream.Read ( btsFrom , 0 , CInt ( tClient.ReceiveBufferSize ) ) op ClientData = System.Text.Encoding.ASCII.GetString ( btsFrom ) ClientData = _ clientData.Substring ( 0 , clientData.IndexOf ( " $ " ) ) hshTbl ( ClientData ) = tClient uitzending ( ClientData + " heeft zich aangesloten " , ClientData , msg Valse ) op Twitter ( ClientData + " heeft zich aangesloten chatroom " ) Dim client als Nieuwe handleClinet client.startClient ( tClient , ClientData , Sub Sub msg ( ByVal msg As String ) msg.Trim ( ) Console.WriteLine ( " >> " + msg ) op Twitter End Sub Private Sub uitzending ( ByVal msg As String , _ ByVal usrName als Koord , ByVal flg zoals Van Boole ) Dim dicEntry Zoals DictionaryEntry Voor Elke dicEntry In hshTbl Dim broadcastSocket Zoals TCPClient broadcastSocket = C ( dicEntry.Value , TCPClient ) Dim broadcastStream Zoals NetworkStream = _ broadcastSocket.GetStream ( ) Dim broadcastBytes Zoals [ Byte ] ( ) op Als flg = True broadcastBytes dan = Encoding.ASCII.GetBytes ( usrName + " 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 tClient Zoals TCPClient Dim ClNO als Koord Dim hshTbl Zoals Hashtable Public Sub startClient ( ByVal inClientSocket Zoals TCPClient , _ ByVal clnNum als Koord , ByVal hsTbl Zoals hash ) < br > Me.tClient = inClientSocket Me.clNo = clnNum Me.hshTbl = hsTbl Dim ctThread Zoals Threading.Thread = Nieuw Threading.Thread ( AddressOf doChat ) ctThread.Start ( ) op End Sub Private Sub doChat ( ) Dim infntCntr als Geheel Dim rqstCnt als Geheel Dim btsFrom ( 10.024 ) als Byte Dim ClientData als Koord Dim btsSend Zoals [ Byte ] ( ) Dim responseSrvr als Koord Dim rCnt als Koord rqstCnt = 0 infntCntr = 1 To 2 infntCntr = 1 Try rqstCnt = rqstCnt + 1 Dim NetworkStream Zoals NetworkStream = _ tClient.GetStream ( ) networkStream.Read ( btsFrom , 0 , CInt ( tClient.ReceiveBufferSize ) ) op ClientData = System.Text.Encoding.ASCII.GetString ( btsFrom ) op ClientData = _ clientData.Substring ( 0 , clientData.IndexOf ( " $ " ) ) msg ( " From client : " + ClNO + " : " + ClientData ) rCnt = Convert.ToString ( rqstCnt ) uitzending ( ClientData , ClNO , ware ) op Catch ex als Uitzondering MsgBox ( ex.ToString ) End of Try Volgende End of Sub End Class End Module 3 Open een nieuw exemplaar van Microsoft Visual Basic Express , klikt u op " New Project ... " op het linkerpaneel van uw scherm , selecteer " Windows Forms Application . " Klik op "OK . " Klik op de " Toolbox " venster , dubbelklik op " TextBox " om een nieuw tekstvak toe te voegen . Voeg nog twee tekstvakken met dezelfde methode . Voeg twee knoppen uit de " Toolbox " menu . 4 Dubbelklik op het formulier , Druk op " Ctrl " en " A ", druk daarna op " Delete " om alle bestaande code te verwijderen . Kopieer en plak de code hieronder in uw " Form1.vb " module aan de client-programma te maken: Imports System.Net.Sockets Imports System.Text Public Class Form1 Dim clntSckt As New System.Net.Sockets.TcpClient ( ) Dim srvrStrm Zoals NetworkStream Dim rddata als Koord Dim infCntr als Geheel Private Sub Button1_Click ( ByVal afzender als System.Object , _ ByVal e als System.EventArgs ) Handles Button1.Click Dim streamOut als Byte ( ) = _ System.Text . Encoding.ASCII.GetBytes ( TextBox2.Text + " $ " ) srvrStrm.Write ( streamOut , 0 , streamOut.Length ) srvrStrm.Flush ( ) end Sub Private Sub msg ( ) Als Me.InvokeRequired Me.Invoke dan ( New MethodInvoker ( AddressOf msg ) ) op Twitter Else < br > TextBox1.Text = TextBox1.Text + Environment.NewLine + " >> " + rddata End Als End Sub Private Sub Button2_Click ( ByVal afzender als System.Object , _ ByVal e als System.EventArgs ) Handles Button2.Click rddata = " conected naar server chatten ... " msg ( ) clntSckt.Connect ( " 127.0.0.1 " , 8888 ) srvrStrm = clntSckt.GetStream ( ) Dim streamOut Zoals Byte ( ) = _ System.Text.Encoding.ASCII.GetBytes ( TextBox3.Text + " $ " ) srvrStrm.Write ( streamOut , 0 , streamOut.Length ) srvrStrm.Flush ( ) < br Dim ctThread > Zoals Threading.Thread = Nieuw Threading.Thread ( AddressOf getMessage ) ctThread.Start ( ) op End Sub Private Sub getMessage ( ) op Twitter Voor infCntr = 1 To 2 infCntr = 1 srvrStrm = clntSckt.GetStream ( ) Dim buffSize als Geheel dim InStream ( 10024 ) Zoals Byte buffSize = clntSckt.ReceiveBufferSize srvrStrm.Read ( instream , 0 , buffSize ) Dim returndata As String = _ System.Text.Encoding.ASCII.GetString ( instream ) rddata = " " + returndata msg ( ) op Volgende End Sub End Class 5 Voer het server programma voor het eerst door op " F5 . " Start de client-programma door te drukken op " F5 ". Typ uw naam in " Textbox3 , " klik " button2 "om een verbinding met de server programma op te stellen . Type 6 een bericht in" TextBox2 , " en klik op ' Button1 ' om uw bericht te verzenden . het bericht wordt weergegeven in de output venster van de server .
|