Hur kod Chat Software utan att använda en databas

August 30

Hur kod 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 / klientapplikation utan att behöva spendera tid att utforma en databas. Ett chattprogram skapas med hjälp av två program, klienten och servern. Applikationsservern kommer att hantera alla klientanslutningar för att upprätta kommunikation. Klientprogrammet installeras i alla datorer som vill ansluta till servern för att prata med andra kunder. Du kan skapa denna ansökan med hjälp av Microsoft Visual Basic.NET, även känd som VB.NET.

Instruktioner

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

2 Tryck på "Ctrl" och "A" och sedan på "Delete" för att ta bort alla existerande kod. Kopiera och klistra in koden nedan i din "Module1.vb" för att skapa serverprogrammet:

import System.Net.Sockets

import System.Text

modul Module1

Dim hshTbl As New Hashtable

Sub Main ()

Dim svrSckt som ny TcpListener (8888)

Dim tClient Såsom TcpClient

Dim infntCntr As Integer

Dim CNTR As Integer

svrSckt.Start ()

msg ( "Server igång för att samtala ....")

CNTR = 0

infntCntr = 0

För infntCntr = 1 till 2

infntCntr = 1

CNTR + = 1

tClient = svrSckt.AcceptTcpClient ()

Dim btsFrom (10024) Som Byte

Dim clientdata As String

Dim networkStream Som NetworkStream = _

tClient.GetStream ()

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

clientdata = System.Text.Encoding.ASCII.GetString (btsFrom)

clientdata = _

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

hshTbl (clientdata) = tClient

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

msg (client + "har gått chattrum")

Dim klient som ny handleClinet

client.startClient (tClient, clientdata, hshTbl)

Nästa

tClient.Close ()

svrSckt.Stop ()

msg ( "Exit")

Console.ReadLine ()

End Sub

Sub msg (ByVal msg As String)

msg.Trim ()

Console.WriteLine ( ">>" + msg)

End Sub

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

ByVal usrName As String, ByVal FLG As Boolean)

Dim dicEntry Såsom DictionaryEntry

För Varje dicEntry I hshTbl

Dim broadcastSocket Som TcpClient

broadcastSocket = ctyp (dicEntry.Value, TcpClient)

Dim broadcastStream Som NetworkStream = _

broadcastSocket.GetStream ()

Dim broadcastBytes As [Byte] ()

Om flg = sant då

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

Annan

broadcastBytes = Encoding.ASCII.GetBytes (msg)

End If

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

broadcastStream.Flush ()

Nästa

End Sub

Public class handleClinet

Dim tClient Såsom TcpClient

Dim clNo As String

Dim hshTbl Som Hashtable

Public Sub startClient (ByVal inClientSocket Såsom TcpClient, _

ByVal clnNum As String, ByVal hsTbl Som Hashtable)

Me.tClient = inClientSocket

Me.clNo = clnNum

Me.hshTbl = hsTbl

Dim ctThread Såsom Threading.Thread = Ny Threading.Thread (AddressOf doChat)

ctThread.Start ()

End Sub

Private Sub doChat ()

Dim infntCntr As Integer

Dim rqstCnt As Integer

Dim btsFrom (10024) Som Byte

Dim clientdata As String

Dim btsSend Som [Byte] ()

Dim responseSrvr As String

Dim rCnt As String

rqstCnt = 0

För infntCntr = 1 till 2

infntCntr = 1

Prova

rqstCnt = rqstCnt + 1

Dim networkStream Som NetworkStream = _

tClient.GetStream ()

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

clientdata = System.Text.Encoding.ASCII.GetString (btsFrom)

clientdata = _

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

msg ( "Från klient:" + clNo + ":" + client)

rCnt = Convert.ToString (rqstCnt)

sändning (client, clNo, sant)

Catch ex Som Exception

MsgBox (ex.ToString)

end Försök

Nästa

End Sub

end klass

end Modul

3 Öppna en ny instans av Microsoft Visual Basic Express, klicka på "New Project ..." på den vänstra delen av skärmen, välj sedan "Windows Forms program." Klicka på "OK." Klicka på "Verktyg" rutan dubbelklicka sedan på "TextBox" för att lägga en ny textruta. Lägga till ytterligare två textrutor med samma metod. Lägg till två knappar på menyn "Verktyg".

4 Dubbelklicka på Form, Tryck på "Ctrl" och "A" och sedan på "Delete" för att ta bort alla existerande 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 As New System.Net.Sockets.TcpClient()

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 + "$")

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

srvrStrm.Flush ()

End Sub

Private Sub msg ()

Om Me.InvokeRequired Därefter

Me.Invoke (New MethodInvoker (AddressOf msg))

Annan

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

End If

End Sub

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

ByVal e Som System.EventArgs) Handtag Button2.Click

rddata = "conected till chatt-server ..."

msg ()

clntSckt.Connect ( "127.0.0.1", 8888)

srvrStrm = clntSckt.GetStream ()

Dim streamOut Som Byte () = _

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

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

srvrStrm.Flush ()

Dim ctThread Såsom Threading.Thread = Ny Threading.Thread (AddressOf getMessage)

ctThread.Start ()

End Sub

Private Sub getMessage ()

För infCntr = 1 till 2

infCntr = 1

srvrStrm = clntSckt.GetStream ()

Dim buffSize As Integer

Dim Instream (10024) Såsom Byte

buffSize = clntSckt.ReceiveBufferSize

srvrStrm.Read (InStream, 0, buffSize)

Dim returndata As String = _

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

rddata = "" + returndata

msg ()

Nästa

End Sub

end klass

5 Kör serverprogrammet först genom att trycka på "F5." Starta klientprogrammet genom att trycka på "F5." Skriv in ditt namn i "Textbox3" klicka sedan på "Button2" för att upprätta en förbindelse med serverprogrammet.

6 Skriv ett meddelande i "TextBox2" klicka sedan på "Button1" för att skicka meddelandet. Meddelandet kommer att visas i utgångsfönstret för servern.


        

Välkommen till dig för att skicka en kommentar:

            
            
            
            

© 2020 Astrixsoft.com | Contact us: webmaster# astrixsoft.com