Att ha kunskap om hur man skapar ett chattrum med Microsoft Visual Basic Express kan spara tid när du behöver skapa ett chattrum ansökan . Visual Basic Express finns tillgänglig gratis för alla som är intresserade av att skapa applikationer med VB.NET . Ett chattrum involverar två ansökningar , den servern och klienten . Servern hanterar alla klientanslutningar , och klientprogrammet ansluter användare till serverrummet att skicka meddelanden . Instruktioner
1
Starta Microsoft Visual Basic Express och klicka sedan på " Nytt projekt . " På den vänstra delen av skärmen , välj " Console Application . " Klicka på " OK . "
2
Tryck " Ctrl " + " A ", och tryck sedan på " Ta bort". Kopiera och klistra in följande kod på din " Module1.vb " för att skapa server programmet :
Import System.Net.Sockets
Import System.Text
Modul Module1
Dim clientsList Som ny Hashtable
Sub Main ( ) katalog
Dim ServerSocket Som New TcpListener ( 8888 ) katalog
Dim clientSocket Som TcpClient
Dim infiniteCounter As Integer
avbländningsräknare As Integer
serverSocket.Start ( ) katalog
msg ( " Chat Server igång .... " ) katalog
räknare = 0
infiniteCounter = 0
För infiniteCounter = 1 Till 2 Review
infiniteCounter = 1
räknare + = 1
clientSocket = serverSocket.AcceptTcpClient ( ) katalog
Dim bytesFrom ( 10024 ) som byte
Dim dataFromClient As String
Dim networkStream Som networkStream = _
clientSocket.GetStream ( ) katalog
networkStream.Read ( bytesFrom , 0 , CInt ( clientSocket.ReceiveBufferSize ) ) katalog
dataFromClient = System.Text.Encoding.ASCII.GetString ( bytesFrom ) katalog
dataFromClient = _
dataFromClient.Substring ( 0 , dataFromClient.IndexOf ( "$" ) ) katalog
clientsList ( dataFromClient ) = clientSocket
broadcast ( dataFromClient + " förenade " , dataFromClient , False ) katalog
msg ( dataFromClient + " Gick chattrum " ) katalog
Dim klient som ny handleClinet
client.startClient ( clientSocket , dataFromClient , Sub
Sub msg ( ByVal Mesg As String ) katalog
mesg.Trim ( ) katalog
Console.WriteLine ( " >> " + Mesg ) katalog
End Sub
Private Sub sändning ( ByVal msg As String , _
ByVal uname As String , ByVal flagga som Boolean ) katalog
Dim Artikelnummer Som DictionaryEntry
För varje post i clientsList
Dim broadcastSocket Som TcpClient
broadcastSocket = ctyp ( Item.Value , TcpClient ) katalog
Dim broadcastStream Som NetworkStream = _
broadcastSocket.GetStream ( ) katalog
Dim broadcastBytes As [ byte ] ( ) katalog p Om flaggan = sant då
broadcastBytes = Encoding.ASCII.GetBytes ( uname + " säger : " + msg ) katalog
Else
broadcastBytes = Encoding.ASCII.GetBytes ( msg ) katalog
End Om
broadcastStream.Write ( broadcastBytes , 0 , broadcastBytes . längd ) katalog
broadcastStream.Flush ( ) katalog
Nästa
End Sub
Public Class handleClinet
Dim clientSocket Som TcpClient
Dim clNo As String
Dim clientsList Som Hashtable
Public Sub startClient ( ByVal inClientSocket Som TcpClient , _
ByVal clineNo As String , ByVal clist Som Hashtable )
Me.clientSocket = inClientSocket
Me.clNo = clineNo
Me.clientsList = clist
Dim ctThread Som Threading.Thread = Ny Threading.Thread ( AddressOf doChat ) katalog
ctThread.Start ( ) katalog
End Sub
Private Sub doChat ( ) katalog
Dim infiniteCounter As Integer
Dim requestCount As Integer
Dim bytesFrom ( 10024 ) som byte
Dim dataFromClient As String
Dim sendBytes Som [ byte ] ( ) katalog
Dim serverResponse As String
Dim rCount As String
requestCount = 0
För infiniteCounter = 1 Till 2 Review
infiniteCounter = 1
Prova
requestCount = requestCount + 1
Dim networkStream Som networkStream = _
clientSocket.GetStream ( ) katalog
networkStream.Read ( bytesFrom , 0 , CInt ( clientSocket.ReceiveBufferSize ) ) katalog
dataFromClient = System.Text.Encoding.ASCII.GetString ( bytesFrom ) katalog
dataFromClient = _
dataFromClient.Substring 0 ( , dataFromClient.IndexOf ( " $ " ) ) katalog
msg ( " From klient - " + clNo + " : " + dataFromClient ) katalog
rCount = Convert.ToString ( requestCount ) katalog
broadcast ( dataFromClient , clNo , sant)
Fånga ex Som Exception
MsgBox ( ex.ToString ) katalog
End Försök
Nästa
End Sub
End Class
ändmodul
3
Starta Microsoft Visual Basic Express , och klicka sedan på " Nytt projekt . " på den vänstra delen av skärmen , välj " Windows Forms Application . " Klicka på" OK . " Klicka på " Verktyg " rutan och dubbelklicka sedan på " TextBox " för att lägga till en ny textruta . Lägg två textrutor . Lägg två knappar från menyn" Verktyg " .
4
Dubbelklicka på formen och sedan trycka " Ctrl " + " A. " Tryck på Kopiera och klistra in följande kod på din " Form1.vb " modul för att skapa klientprogrammet " Delete . " :
Import System.Net.Sockets
Import System.Text
Public Class Form1
Dim clientSocket Som New System.Net.Sockets.TcpClient ( )
Dim serverStream Som NetworkStream
Dim readData As String
Dim infiniteCounter As Integer
Private Sub Button1_Click ( ByVal avsändaren som System.Object , _
ByVal e Som System.EventArgs ) Handtag Button1.Click
Dim outStream Som byte ( ) = _
System.Text.Encoding.ASCII.GetBytes ( TextBox2.Text + " $ " ) katalog
serverStream.Write ( outStream , 0 , outStream.Length ) katalog
serverStream.Flush ( ) katalog
End Sub
Private Sub msg ( ) katalog
Om Me.InvokeRequired Sedan
Me.Invoke ( New MethodInvoker ( AddressOf msg ) ) katalog
Else
TextBox1.Text = TextBox1.Text + Environment.NewLine + " >> " + readData
End If
End Sub
Private Sub Button2_Click ( ByVal avsändaren som System.Object , _
ByVal e som System.EventArgs ) Handtag Button2.Click
readData = " conected Chat Server ... "
msg ( ) katalog
clientSocket.Connect ( " 127.0.0.1 " , 8888 ) katalog
' Label1.Text = " klient Socket Program - Server Ansluten ... "
serverStream = clientSocket.GetStream ( ) katalog
Dim outStream Som byte ( ) = _
System.Text.Encoding.ASCII.GetBytes ( TextBox3.Text + "$" ) katalog
serverStream.Write ( outStream , 0 , outStream.Length )
serverStream.Flush ( ) katalog
Dim ctThread Som Threading.Thread = Ny Threading.Thread ( AddressOf getMessage ) katalog
ctThread.Start ( ) katalog
End Sub
Private Sub getMessage ( ) katalog
För infiniteCounter = 1 Till 2 Review
infiniteCounter = 1
serverStream = clientSocket.GetStream ( ) katalog
Dim buffSize As Integer
Dim Instream ( 10024 ) As byte
buffSize = clientSocket.ReceiveBufferSize
serverStream.Read ( minimi , 0 , buffSize ) katalog
Dim returndata As String = _
System.Text.Encoding.ASCII.GetString ( Instream ) katalog
readData = " " + returndata
msg ( ) katalog
Nästa
End Sub
End Class
5
köra servern programmet först genom att trycka på " F5 " , och sedan kör klientprogrammet . Skriv ditt namn i " Textbox3 " och klicka på " Button2 " för att ansluta till servern . Skriv ett meddelande i " TextBox2 , " och klicka sedan på " Button1 " för att skicka ett meddelande .