Connaître comment coder un salon de discussion sans l'aide d'une base de données peut vous aider à créer un serveur /application client sans avoir à passer du temps à la conception d'une base de données. Un programme de chat est créé à l'aide de deux applications , le client et le serveur. L'application serveur se chargera de toutes les connexions client pour établir la communication . Le programme client est installé sur n'importe quel ordinateur souhaitant se connecter au serveur pour discuter avec d'autres clients. Vous pouvez créer cette application en utilisant Microsoft Visual Basic.NET , également connu sous VB.NET . Choses que vous devez
Microsoft Visual Basic Express
Voir Plus Instructions
1
Ouvrez Microsoft Visual Basic Express, cliquez sur "Nouveau projet ... " Dans le volet gauche de votre écran , puis sélectionnez " Application console. " Cliquez sur « OK ».
2
Appuyez sur "Ctrl " et "A ", puis appuyez sur «Supprimer» pour enlever tout le code existant. Copiez et collez le code ci-dessous dans votre " Module1.vb " pour créer l'application serveur : Photos
importations System.Net.Sockets
importations System.Text
Module Module1
hshTbl As New Hashtable
Sub Main ( )
svrSckt As New TcpListener ( 8888)
TClient As TcpClient
infntCntr As Integer
CNTR As Integer
svrSckt.Start ()
msg ( " serveur de démarrage pour bavarder .... " )
CNTR = 0
infntCntr = 0
infntCntr = 1 To 2
infntCntr = 1
CNTR + = 1
TClient = svrSckt.AcceptTcpClient ()
Dim btsFrom ( 10024 ) As Byte
clientData Dim As String
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
diffusion ( clientData + " a rejoint " , clientData , Faux )
msg ( clientData + " a rejoint le chat room" )
client As New handleClinet
client.startClient ( TClient , clientData , Sous
Sous msg ( msg ByVal As String )
msg.Trim ()
Console.WriteLine ( ">>" + msg)
< p > End Sub
diffusion Private Sub (msg ByVal As String , _
usrname ByVal As String , ByVal FLG As Boolean )
dicEntry As DictionaryEntry
< p > Pour chaque dicEntry En hshTbl
broadcastSocket As TcpClient
broadcastSocket = C ( dicEntry.Value , TcpClient )
broadcastStream As NetworkStream = _
broadcastSocket.GetStream ()
broadcastBytes As [ Byte ] ()
Si FLG = true Ensuite
broadcastBytes = Encoding.ASCII.GetBytes ( usrname + " dit: " + msg)
Else
broadcastBytes = Encoding.ASCII.GetBytes (MSG)
End If
broadcastStream.Write ( broadcastBytes , 0, broadcastBytes . longueur )
broadcastStream.Flush ()
Suivant
End Sub
public Class handleClinet
TClient As TcpClient
Dim ClNO As String
hshTbl As Hashtable
public Sub startClient ( ByVal inClientSocket Comme TcpClient , _
clnNum ByVal As String , ByVal hsTbl Comme Hashtable )
Me.tClient = inClientSocket
Me.clNo = clnNum
Me.hshTbl = hsTbl
ctThread As Threading.Thread = New Threading.Thread ( AddressOf doChat )
ctThread.Start ()
End Sub
doChat Private Sub ()
infntCntr As Integer Dim
rqstCnt As Integer
Dim btsFrom ( 10024 ) As Byte
clientData Dim As String
btsSend As [ Byte ] ()
de responseSrvr Dim As String Photos
RCNT Dim As String
rqstCnt = 0
infntCntr = 1 To 2
infntCntr = 1
essayer et
rqstCnt = rqstCnt + 1
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 ("$" ) )
msg ( " De client :" + ClNO + ":" + clientData )
RCNT = Convert.ToString ( rqstCnt )
diffusion ( clientData , ClNO , vrai)
Catch ex As Exception
MsgBox ( ex.ToString )
Fin essayer et
Suivant
End Sub
End Class of
End Module
3
Ouvrez une nouvelle instance de Microsoft Visual Basic express, cliquez sur "Nouveau projet ..." sur le volet de gauche de votre écran , puis sélectionnez " applications Windows Forms . " Cliquez sur "OK". Cliquez sur le volet " boîte à outils " , puis double -cliquez sur " TextBox " pour ajouter une nouvelle zone de texte . Ajoutez deux zones de texte en utilisant la même méthode. Ajoutez deux boutons de le menu " Outils " .
4
Double- cliquez sur le formulaire , appuyez sur " Ctrl" et " A ", puis appuyez sur «Supprimer» pour enlever tout le code existant. Copier et coller le code ci-dessous dans votre "Form1.vb" module pour créer le programme client : Photos
importations System.Net.Sockets
Imports System.Text
public Class Form1
Dim clntSckt As New System.Net.Sockets.TcpClient ()
srvrStrm As NetworkStream
rddata Dim As String
infCntr As Integer
Private Sub Button1_Click ( expéditeur de ByVal comme System.Object , _
ByVal e As System.EventArgs ) Handles Button1.Click
StreamOut As Byte () = _
System.Text . Encoding.ASCII.GetBytes ( TextBox2.Text + "$")
srvrStrm.Write ( StreamOut , 0, streamOut.Length )
srvrStrm.Flush ()
End Sub
msg Private Sub ()
Si Me.InvokeRequired Puis
Me.Invoke (New MethodInvoker ( AddressOf msg) )
Else < br >
TextBox1.Text = TextBox1.Text + Environment.NewLine + ">>" + rddata
End If End Sub
Private Sub Button2_Click ( expéditeur de ByVal comme System.Object , _
ByVal e As System.EventArgs ) Handles Button2.Click
rddata = " Les liens entre l' serveur de chat ... "
msg (produits )
clntSckt.Connect ( "127.0.0.1" , 8888)
srvrStrm = clntSckt.GetStream ()
StreamOut As Byte () = _
< p> System.Text.Encoding.ASCII.GetBytes ( TextBox3.Text + "$")
srvrStrm.Write ( StreamOut , 0, streamOut.Length )
srvrStrm.Flush ()
ctThread As Threading.Thread = New Threading.Thread ( AddressOf getMessage )
ctThread.Start ()
End Sub Private Sub
getMessage () Photos
infCntr = 1 To 2
infCntr = 1
srvrStrm = clntSckt.GetStream ()
de buffSize As Integer
inStream Dim ( 10024 ) As Byte
buffSize = clntSckt.ReceiveBufferSize
srvrStrm.Read ( cours d'eau , 0, buffSize )
returndata As String = _
< p> System.Text.Encoding.ASCII.GetString ( cours d'eau )
rddata = "" + returndata
msg ()
Ensuite
End Sub Photos
End Class
5
Exécutez le programme serveur abord en appuyant sur la touche "F5 ". Démarrez le programme client en appuyant sur la touche "F5 ". Tapez votre nom dans " Textbox3 », puis cliquez sur " Button2 " pour établir une connexion avec le programme serveur .
6
Tapez un message dans" TextBox2 , " puis cliquez sur " Button1 "pour envoyer votre message. Ce message sera affiché dans la fenêtre de sortie de l' serveur.