Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> Visual Basics Programmering >> Content

    Hur koden Chat Software utan att använda en databas

    Att veta hur man koda ett chattrum utan att använda en databas kan hjälpa dig att skapa en server /klient program utan att behöva spendera tid på att designa en databas . Ett chattprogram skapas med hjälp av två program , klienten och servern . Servern ansökan kommer att hantera alla klientanslutningar att upprätta kommunikation . Klientprogrammet är installerat på alla datorer som vill ansluta till servern för att chatta med andra klienter . Du kan skapa denna applikation använder Microsoft Visual Basic.NET , även känd som VB.NET . Saker du behöver
    Microsoft Visual Basic Express
    Visa fler instruktioner
    1

    Öppna Microsoft Visual Basic Express , klicka på " Nytt projekt ... " i den vänstra rutan på skärmen och välj sedan " Console Application . " Klicka på " OK . "
    2

    Tryck " Ctrl " och " A ", tryck sedan på " Delete " för att ta bort all befintlig kod . Kopiera och klistra in koden nedan på din " Module1.vb " för att skapa serverprogrammet :

    Import System.Net.Sockets

    Import System.Text

    Modul Module1

    Dim hshTbl Som ny Hashtable

    Sub Main ( ) katalog

    Dim svrSckt Som New TcpListener ( 8888 ) katalog

    Dim tClient Som TcpClient

    Dim infntCntr As Integer

    Dim cntr As Integer

    svrSckt.Start ( ) katalog

    msg ( " Server Started för att chatta .... " ) katalog

    CNTR = 0

    infntCntr = 0

    För infntCntr = 1 Till 2 Review

    infntCntr = 1

    CNTR + = 1

    tClient = svrSckt.AcceptTcpClient ( ) katalog

    Dim btsFrom ( 10024 ) som byte

    Dim clientData As String

    Dim networkStream Som networkStream = _

    tClient.GetStream ( ) katalog

    networkStream.Read ( btsFrom , 0 , CInt ( tClient.ReceiveBufferSize ) ) katalog

    clientData = System.Text.Encoding.ASCII.GetString ( btsFrom ) katalog

    clientData = _

    clientData.Substring ( 0 , ( " $ " ) clientData.IndexOf ) katalog

    hshTbl ( clientData ) = tClient

    sändning ( clientData + " har gått " , clientData , False ) katalog

    msg ( clientData + " har gått chattrum " ) katalog

    Dim klient som ny handleClinet

    client.startClient ( tClient , clientData , Sub

    Sub msg ( ByVal msg As String ) katalog

    msg.Trim ( ) katalog

    Console.WriteLine ( " >> " + msg ) katalog

    End Sub

    Private Sub sändning ( ByVal msg As String , _

    ByVal usrName As String , ByVal flg As Boolean ) katalog

    Dim dicEntry Som DictionaryEntry

    För varje dicEntry I hshTbl

    Dim broadcastSocket Som TcpClient

    broadcastSocket = ctyp ( dicEntry.Value , TcpClient ) katalog

    Dim broadcastStream Som NetworkStream = _

    broadcastSocket.GetStream ( ) katalog

    Dim broadcastBytes Som [ byte ] ( ) katalog p Om flg = sant då

    broadcastBytes = Encoding.ASCII.GetBytes ( usrName + " säger : " + msg ) katalog

    Else

    broadcastBytes = Encoding.ASCII.GetBytes ( msg ) katalog

    End Om

    broadcastStream.Write ( broadcastBytes , 0 , broadcastBytes . längd ) katalog

    broadcastStream.Flush ( ) katalog

    Nästa

    End Sub

    Public Class handleClinet

    Dim tClient Som TcpClient

    Dim clNo As String

    Dim hshTbl Som Hashtable

    Public Sub startClient ( ByVal inClientSocket Som TcpClient , _

    ByVal clnNum As String , ByVal hsTbl Som Hashtable )

    Me.tClient = inClientSocket

    Me.clNo = clnNum

    Me.hshTbl = hsTbl

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

    ctThread.Start ( ) katalog

    End Sub

    Private Sub doChat ( ) katalog

    Dim infntCntr As Integer

    Dim rqstCnt As Integer

    Dim btsFrom ( 10024 ) som byte

    Dim clientData As String

    Dim btsSend Som [ byte ] ( ) katalog

    Dim responseSrvr As String

    Dim rCnt As String

    rqstCnt = 0

    För infntCntr = 1 Till 2 Review

    infntCntr = 1

    Prova

    rqstCnt = rqstCnt + 1

    Dim networkStream Som networkStream = _

    tClient.GetStream ( ) katalog

    networkStream.Read ( btsFrom , 0 , CInt ( tClient.ReceiveBufferSize ) ) katalog

    clientData = System.Text.Encoding.ASCII.GetString ( btsFrom ) katalog

    clientData = _

    clientData.Substring 0 ( , clientData.IndexOf ( " $ " ) ) katalog

    msg ( " From klient : " + clNo + " : " + clientData ) katalog

    rCnt = Convert.ToString ( rqstCnt ) katalog

    broadcast ( clientData , clNo , sant)

    Fånga ex Som Exception

    MsgBox ( ex.ToString ) katalog

    End Försök

    Nästa

    End Sub

    End Class

    ändmodul
    3

    Öppna en ny instans av Microsoft Visual Basic Express , klicka på " nytt projekt ... " på den vänstra rutan i din skärmen och välj sedan " Windows Forms Application . " Klicka på " OK . " Klicka på " Verktyg" rutan , dubbelklicka sedan på " TextBox " för att lägga till en ny textruta . Lägg två textrutor med samma metod . Lägg två knappar från "Toolbox " -menyn .
    4

    Dubbelklicka på Form , Tryck på " Ctrl " och " A ", tryck sedan på " Delete " för att ta bort all befintlig kod . Kopiera och klistra in koden nedan i din " Form1.vb " modul för att skapa klientprogrammet :

    Import System.Net.Sockets

    Import System.Text

    Public Class Form1

    Dim clntSckt Som New System.Net.Sockets.TcpClient ( ) katalog

    Dim srvrStrm Som NetworkStream

    Dim rddata As String

    Dim infCntr As Integer

    Private Sub Button1_Click ( ByVal avsändaren som System.Object , _

    ByVal e Som System.EventArgs ) Handtag Button1.Click

    Dim streamOut Som byte ( ) = _

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

    srvrStrm.Write ( streamOut , 0 , streamOut.Length ) katalog

    srvrStrm.Flush ( ) katalog

    End Sub

    Private Sub msg ( ) katalog p Om Me.InvokeRequired Sedan

    Me.Invoke ( New MethodInvoker ( AddressOf msg ) ) katalog

    Else

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

    End If

    End Sub

    Private Sub Button2_Click ( ByVal avsändare som System.Object , Handtag _

    ByVal e som System.EventArgs ) Button2.Click

    rddata = " conected att chatta server ... "

    msg ( ) katalog

    clntSckt.Connect ( " 127.0.0.1 " , 8888 ) katalog

    srvrStrm = clntSckt.GetStream ( ) katalog

    Dim streamOut Som byte ( ) = _

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

    srvrStrm.Write ( streamOut , 0 , streamOut.Length ) katalog

    srvrStrm.Flush ( )

    Dim ctThread Som Threading.Thread = Ny Threading.Thread ( AddressOf getMessage ) katalog

    ctThread.Start ( ) katalog

    End Sub

    Private Sub getMessage ( )

    För infCntr = 1 Till 2 Review

    infCntr = 1

    srvrStrm = clntSckt.GetStream ( ) katalog

    Dim buffSize As Integer

    Dim Instream ( 10024 ) As byte

    buffSize = clntSckt.ReceiveBufferSize

    srvrStrm.Read ( minimi , 0 , buffSize ) katalog

    Dim returndata As String = _

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

    rddata = " " + returndata

    msg ( ) katalog

    Nästa

    End Sub

    End Class
    5

    köra servern programmet först genom att trycka på " F5 ". Starta klientprogrammet genom att trycka på " F5 ". Skriv ditt namn i " Textbox3 , " klicka sedan på " button2 " för att upprätta en anslutning till servern programmet .
    6

    Skriv ett meddelande i " TextBox2 , " klicka sedan på " Button1 " för att skicka ditt meddelande . meddelandet visas i utdata Fönster av server . Addera

    Tidigare:

    nästa:
    relaterade artiklar
    ·Inaktivera muspekaren med VBA i Word
    ·Så tillbaka till Formulär1 från Form2 i Visual Basic…
    ·Hur Tilldela ett uttryck till en etikett i Visual Basic…
    ·Hur man skriver en ActiveX-kontroll
    ·Hur man skriver ut innehållet i en listruta i VBA
    ·Hur man sparar en variabel till en databas med hjälp a…
    ·Hur man kan få ett VBA borttagningsfråga
    ·Hur man aktiverar ett fönster API Visa i VB6
    ·Hur man gör en Key Gen i Vb
    ·Hur du tar bort alla Skrivare Med VBScript
    Utvalda artiklarna
    ·Typer av WCF Sessions
    ·Hur man lyssnar på ett tangentbord i Java
    ·Hur man skapar en resolution Oberoende Frame i VB.NET
    ·Hur man sätter in en fördröjning i sekunder för C +…
    ·Definition av händelser i Visual Basic
    ·Hur du väljer Senaste MySQL automatisk ökning i PHP
    ·Hur man öka en PHP Memory Limit Med Network Solutions
    ·Hur man skriver ett Pseudokod Kod Script
    ·Java Spring Vs. Struts
    ·Hur man ändra titeln Bar i Perl Script
    Copyright © Dator Kunskap http://www.dator.xyz