Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako kódu Chat Software bez použitia databázy

Vedieť , ako sa kód chatovacej miestnosti bez použitia databázy vám pomôže vytvoriť server /klient aplikácie , bez toho aby ste museli tráviť čas navrhovania databázy . Chatovací program je vytvorený pomocou dvoch aplikácií , klienta a servera . Aplikačný server bude spracovávať všetky pripojenia klienta k nadviazanie komunikácie . Klientský program je nainštalovaný v každom počítači , chce sa pripojiť k serveru chatovať s ostatnými klientmi . Môžete vytvoriť túto aplikáciu pomocou Microsoft Visual Basic.NET , tiež známy ako VB.NET . Veci , ktoré budete potrebovať v Microsoft Visual Basic Express
Zobraziť ďalšie inštrukcie Cestuj 1

Otvorte program Microsoft Visual Basic Express , kliknite na tlačidlo " Nový projekt ... " V ľavej table obrazovky , potom vyberte " Aplikácia konzoly . " Kliknite na tlačidlo " OK " .
2

Stlačte tlačidlo " Ctrl " a " , " a potom stlačte tlačidlo " Delete " odstrániť všetky existujúce kód . Skopírujte a vložte nižšie uvedený kód do vašej " Module1.vb " vytvoriť serverové aplikácie :

Dovoz System.Net.Sockets

Dovoz System.Text

Module Module1

Dim hshTbl Ako Nový Hashtable

Sub Main ( )

Dim svrSckt As New TcpListener ( 8888 )

Dim tClient Ako TcpClient

Dim infntCntr As Integer

Dim cntr As Integer

svrSckt.Start ( )

msg ( " server bol spustený pre chatovanie .... " )

cntr = 0

infntCntr = 0

infntCntr = 1 K 2

infntCntr = 1

Čítač + = 1

tClient = svrSckt.AcceptTcpClient ( )

Dim btsFrom ( 10024 ) Ako Byte

Dim clientData As String Dim

NetworkStream As 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

vysielania ( clientData + " sa stal " , clientData , FALSE )

msg ( clientData + " sa stal chatovaciu miestnosť " )

Dim klient ako New handleClinet

client.startClient ( tClient , clientData , Sub

Sub msg ( ByVal msg As String )

msg.Trim ( )

Console.WriteLine ( " >> " + msg )

End Sub

Private Sub vysielania ( byVal msg As String , _ byVal

usrName As String , byVal FLG As Boolean )

Dim dicentra Ako DictionaryEntry

Pre každý dicentra V hshTbl

Dim broadcastSocket Ako TcpClient

broadcastSocket = Cdruh ( dicEntry.Value , TcpClient )

Dim broadcastStream Ako NetworkStream = _

broadcastSocket.GetStream ( )

Dim broadcastBytes As [ Byte ] ( )

Ak FLG = True Then

broadcastBytes = Encoding.ASCII.GetBytes ( usrName + " hovorí : " + msg )

Else

broadcastBytes = Encoding.ASCII.GetBytes ( msg )

End If

broadcastStream.Write ( broadcastBytes , 0 , broadcastBytes . dĺžka )

broadcastStream.Flush ( )

Ďalšie

End Sub

Public Class handleClinet

Dim tClient ako TcpClient

Dim ClNO As String Dim

hshTbl Ako Hashtable

Public Sub startClient ( byval inClientSocket Ako TcpClient , _ byVal

clnNum As String , byval hsTbl Ako Hashtable )

Me.tClient = inClientSocket

Me.clNo = clnNum

Me.hshTbl = hsTbl

Dim ctThread Ako Threading.Thread = Nové Threading.Thread ( AddressOf doch )

ctThread.Start ( )

End Sub

Private Sub doch ( )

Dim infntCntr As Integer Dim

rqstCnt As Integer

Dim btsFrom ( 10024 ) Ako Byte

Dim clientData As String Dim

btsSend As Byte [ ] ( )

Dim responseSrvr As String

Dim rCnt As String

rqstCnt = 0

infntCntr = 1 K 2

infntCntr = 1

Skúste

rqstCnt = rqstCnt + 1

Dim NetworkStream Ako NetworkStream = _

tClient.GetStream ( )

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

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

clientData = _

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

msg ( " Od klienta : " + ClNO + " : " + clientData )

rCnt = Convert.ToString ( rqstCnt )

vysielania ( clientData , ClNO , pravda )

Chytiť ex ako výnimka

MsgBox ( ex.ToString )

End Try

Ďalšie

End Sub

End Class

End Module
3

Otvorenie novej inštancie aplikácie Microsoft Visual Basic Express , kliknite na tlačidlo " Nový projekt ... " na ľavom paneli vášho obrazovke , vyberte " Windows Forms . " Kliknite na tlačidlo " OK " . Kliknite na " Nástroje " panel , dvakrát kliknite na tlačidlo " textové pole " pridať nové textové pole . Pridať dve textové polia pomocou rovnakej metódy . Pridať dve tlačidlá z menu " Nástroje " .
4

Dvakrát kliknite na formulár , stlačte " Ctrl " a " a " , potom stlačte tlačidlo " Delete " odstrániť všetky existujúce kód . skopírujte a vložte nižšie uvedený kód do vašich " Form1.vb " modul vytvoriť klientský program : Spojené

Dovoz System.Net.Sockets

Dovoz System.Text

Public Class Form1

Dim clntSckt ako nový System.Net.Sockets.TcpClient ( )

Dim srvrStrm ako NetworkStream

Dim rddata As String Dim

infCntr As Integer

Private Sub Button1_Click ( byval sender ako Object , _ byval

e As System.EventArgs ) Kľuky Button1.Click klipart

Dim streamOut ako Byte ( ) = _

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

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

srvrStrm.Flush ( )

end Sub

Private Sub msg ( )

Ak Me.InvokeRequired Potom

Me.Invoke ( New MethodInvoker ( AddressOf msg ) )

Else

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

End If

End Sub

Private Sub Button2_Click ( byval odosielateľa ako System.Object , _

byval e ako System.EventArgs ) Kľuky Button2.Click klipart

rddata = " pripojených na chate servera ... "

msg ( )

clntSckt.Connect ( " 127.0.0.1 " , 8888 )

srvrStrm = clntSckt.GetStream ( )

Dim streamOut Ako Byte ( ) = _

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

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

srvrStrm.Flush ( )

Dim ctThread Ako Threading.Thread = Nové Threading.Thread ( AddressOf GetMessage )

ctThread.Start ( )

End Sub

Private Sub GetMessage ( )

infCntr = 1 K 2

infCntr = 1

srvrStrm = clntSckt.GetStream ( )

Dim buffSize As Integer

Dim vo videu ( 10024 ) Ako Byte

buffSize = clntSckt.ReceiveBufferSize

srvrStrm.Read ( vo videu , 0 , buffSize )

Dim returndata As String = _

System.Text.Encoding.ASCII.GetString ( vo videu )

rddata = " " + returndata

msg ( )

Ďalšie

End Sub

End Class
5

spustite program servera najprv stlačením " F5 " . spustite klientsky program stlačením tlačidla " F5 " . Zadajte svoje meno " Textbox3 , " kliknite na tlačidlo " button2 " nadviazať spojenie s programom servera .
6

Zadajte správu do " TextBox2 , " kliknite na tlačidlo " Button1 "odoslať správu . Správa sa zobrazí v okne výstup servera .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené