Hvordan koden Chat programvare uten å bruke en database

Hvordan koden Chat programvare uten å bruke en database


Å vite hvordan å kode et chatterom uten å bruke en database kan hjelpe deg å lage en server / klientprogram uten å måtte bruke tid på å utforme en database. En chat-programmet er opprettet ved hjelp av to programmer, klienten og serveren. Serveren søknaden vil håndtere alle klienttilkoblinger å etablere kommunikasjon. Klientprogrammet installeres på hvilken som helst datamaskin som ønsker å koble til serveren for å chatte med andre kunder. Du kan opprette dette programmet ved hjelp av Microsoft Visual Basic.NET, også kjent som VB.NET.

Bruksanvisning

1 Åpne Microsoft Visual Basic Express, klikk på "Nytt prosjekt ..." på ruten til venstre på skjermen, og velg deretter "Console Application". Klikk på "OK".

2 Trykk "Ctrl" og "A", og trykk deretter på "Slett" for å fjerne alle eksisterende kode. Kopier og lim inn koden nedenfor i din "Module1.vb" for å lage serverprogrammet:

import System.Net.Sockets

importen System.Text

modul module1

Dim hshTbl As New Hashtable

Sub main ()

Dim svrSckt som ny TcpListener (8888)

Dim tClient Som TcpClient

Dim infntCntr As Integer

Dim CNTR As Integer

svrSckt.Start ()

msg ( "Server Startet for chatting ....")

CNTR = 0

infntCntr = 0

For infntCntr = 1 til 2

infntCntr = 1

cntr + = 1

tClient = svrSckt.AcceptTcpClient ()

Dim btsFrom (10024) As 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

kringkasting (clientData + "har sluttet", clientData, False)

msg (clientData + "har sluttet chat room")

Dim klient som ny handleClinet

client.startClient (tClient, clientData, hshTbl)

neste

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 kringkasting (ByVal msg As String, _

ByVal usrName As String, ByVal FLG As Boolean)

Dim dicEntry Som DictionaryEntry

For hver dicEntry I hshTbl

Dim broadcastSocket Som TcpClient

broadcastSocket = CTYPE (dicEntry.Value, TcpClient)

Dim broadcastStream Som NetworkStream = _

broadcastSocket.GetStream ()

Dim broadcastBytes Som [Byte] ()

Hvis flg = True Deretter

broadcastBytes = Encoding.ASCII.GetBytes (usrName + "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 tClient Som TcpClient

Dim clNo As String

Dim hshTbl Som hashtabellen

Public Sub startClient (ByVal inClientSocket Som TcpClient, _

ByVal clnNum As String, ByVal hsTbl As hashtabellen)

Me.tClient = inClientSocket

Me.clNo = clnNum

Me.hshTbl = hsTbl

Dim ctThread 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) As Byte

Dim clientData As String

Dim btsSend Som [Byte] ()

Dim responseSrvr As String

Dim rCnt As String

rqstCnt = 0

For infntCntr = 1 til 2

infntCntr = 1

Prøve

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 ( "Fra klient:" + clNo + ":" + clientData)

rCnt = Convert.ToString (rqstCnt)

kringkasting (clientData, clNo, sann)

Catch ex As Exception

MsgBox (ex.ToString)

End Try

neste

End Sub

End Class

End Module

3 Åpne en ny forekomst av Microsoft Visual Basic Express, klikk på "Nytt prosjekt ..." på ruten til venstre på skjermen, og velg deretter "Windows Forms Application". Klikk på "OK". Klikk på "Toolbox" ruten, og dobbeltklikk på "TextBox" for å legge til en ny tekstboks. Legg til to flere tekstbokser ved hjelp av samme metode. Legg til to knapper fra "Toolbox" -menyen.

4 Dobbeltklikk på Form, Trykk "Ctrl" og "A", og trykk deretter på "Slett" for å fjerne alle eksisterende kode. Kopier og lim inn koden nedenfor i din "Form1.vb" modul for å opprette klientprogrammet:

import System.Net.Sockets

importen 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 sender As System.Object, _

ByVal e As System.EventArgs) Håndtak Button1.Click

Dim streamOut As Byte () = _

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

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

srvrStrm.Flush ()

End Sub

Private Sub msg ()

Hvis Me.InvokeRequired Deretter

Me.Invoke (New MethodInvoker (AddressOf msg))

Ellers

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

Slutt om

End Sub

Private Sub Button2_Click (ByVal sender As System.Object, _

ByVal e As System.EventArgs) Håndtak Button2.Click

rddata = "conected å chatte server ..."

msg ()

clntSckt.Connect ( "127.0.0.1", 8888)

srvrStrm = clntSckt.GetStream ()

Dim streamOut As Byte () = _

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

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

srvrStrm.Flush ()

Dim ctThread Som Threading.Thread = Ny Threading.Thread (AddressOf GetMessage)

ctThread.Start ()

End Sub

Private Sub GetMessage ()

For infCntr = 1 til 2

infCntr = 1

srvrStrm = clntSckt.GetStream ()

Dim buffSize As Integer

Dim Instream (10024) As Byte

buffSize = clntSckt.ReceiveBufferSize

srvrStrm.Read (Instream, 0, buffSize)

Dim returndata As String = _

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

rddata = "" + returndata

msg ()

neste

End Sub

End Class

5 Kjør tjenerprogrammet først ved å trykke "F5". Start klientprogrammet ved å trykke "F5". Skriv navnet ditt i "Textbox3," klikk "Button2" for å etablere en forbindelse med tjenerprogrammet.

6 Skriv en melding i "TextBox2," klikk "Button1" for å sende meldingen. Meldingen vil bli vist i utgangs Window of the server.