Å vite hvordan man skal kode et chatterom uten å bruke en database kan hjelpe deg å lage en server /klient -programmet uten å måtte bruke tid på å utforme en database . En chat -programmet er opprettet ved hjelp av to søknader , klienten og serveren . Serveren programmet vil håndtere alle klient- tilkoblinger for å etablere kommunikasjon . Klientprogrammet er installert på alle datamaskiner som ønsker å koble til serveren for å chatte med andre klienter . Du kan lage dette programmet ved hjelp av Microsoft Visual Basic.NET , også kjent som VB.NET . Du trenger
Microsoft Visual Basic Express
Vis flere instruksjoner
en
Åpne Microsoft Visual Basic Express, klikker du "New Project ... " på ruten til venstre på skjermen , og velg deretter "Console Application. " Klikk "OK".
2
Trykk " Ctrl" og "A ", klikk deretter "Slett " for å fjerne all eksisterende kode . Kopier og lim inn koden nedenfor i din " Module1.vb " for å lage server-programmet :
Importen System.Net.Sockets
Importen System.Text
Module Module1
Dim hshTbl som ny 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 To 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
kringkasting ( clientData + "har sluttet " , clientData , False )
msg ( clientData + "har sluttet praterom ")
Dim klient som ny handleClinet
client.startClient ( tClient , clientData , Sub
Sub msg ( ByVal msg As String )
msg.Trim ( )
Console.WriteLine ( ">>" + msg )
< p > End Sub
Private Sub kringkasting ( ByVal msg As String , _
ByVal usrName As String , ByVal FLG As Boolean )
Dim dicEntry Som DictionaryEntry
< p > For Hver dicEntry I hshTbl
Dim broadcastSocket Som TcpClient
broadcastSocket = ctype ( dicEntry.Value , TcpClient )
Dim broadcastStream Som NetworkStream = _
broadcastSocket.GetStream ( )
Dim broadcastBytes Som [ Byte ] ( )
p Hvis FLG = sant da
broadcastBytes = Encoding.ASCII.GetBytes ( usrName + " sier: " + msg )
Else
broadcastBytes = Encoding.ASCII.GetBytes ( MSG)
End Hvis
broadcastStream.Write ( broadcastBytes , 0 , broadcastBytes . lengde)
broadcastStream.Flush ( )
Neste
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 )
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
For infntCntr = 1 To 2
infntCntr = 1
Prøv
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 , sant)
Catch ex As Exception
MsgBox ( ex.ToString )
End Prøv
Neste
End Sub
End Class
End Module
3
Åpne en ny forekomst av Microsoft Visual Basic Express , klikker du "New Project ... " på venstre rute i skjermen, velg deretter "Windows Forms Application. " Klikk " OK ." Klikk på " Toolbox" -panelet , og dobbeltklikk på " TextBox " for å legge en ny tekstboks . Legg to tekstbokser ved hjelp av samme metode. Legg to knapper fra "Toolbox "-menyen .
4
Dobbeltklikk Form , Trykk "Ctrl " og "A ", klikk deretter "Slett " for å fjerne all eksisterende kode . Kopier og lim inn koden nedenfor i din " Form1.vb " modul for å lage klientprogrammet :
Importen System.Net.Sockets
Importen System.Text
Public Class Form1
Dim clntSckt som ny System.Net.Sockets.TcpClient ( )
Dim srvrStrm Som NetworkStream
Dim rddata As String
Dim infCntr som heltall
Private Sub button1_click ( ByVal avsenderen som System.Object , _
ByVal e Som System.EventArgs ) Håndtak 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 ( )
p Hvis Me.InvokeRequired Deretter
Me.Invoke (New MethodInvoker ( AddressOf msg ) )
Else
TextBox1.Text = TextBox1.Text + Environment.NewLine + " >> " + rddata
End If
End Sub
Private Sub Button2_Click ( ByVal avsenderen som System.Object , Håndtak _
ByVal e Som System.EventArgs ) Button2.Click
rddata = " conected å chatte server ... "
msg ( )
clntSckt.Connect ( " 127.0.0.1 " , 8888 )
srvrStrm = clntSckt.GetStream ( )
Dim streamOut Som Byte ( ) = _
< p> 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 To 2
infCntr = 1
srvrStrm = clntSckt.GetStream ( )
Dim buffSize As Integer
Dim InStream ( 10024 ) Som Byte
buffSize = clntSckt.ReceiveBufferSize
srvrStrm.Read ( InStream , 0 , buffSize )
Dim returndata As String = _
< p> System.Text.Encoding.ASCII.GetString ( InStream )
rddata = " " + returndata
msg ( )
Neste
End Sub
End Class
5
Kjør server program først ved å trykke " F5 . " Start klientprogrammet ved å trykke " F5 . " Skriv navnet ditt i " Textbox3 ," klikk " knappen2 "for å opprette en forbindelse med serveren programmet .
6
Skriv inn et innlegg i" TextBox2 , "klikk " Button1 "for å sende meldingen . meldingen vises i output Window of the server.