At have viden om, hvordan man skaber et chatrum ved hjælp af Microsoft Visual Basic Express kan spare dig tid, når du skal oprette et chatrum ansøgning. Visual Basic Express er gratis til rådighed for alle interesserede i at skabe programmer, der bruger VB.NET . Et chatrum involverer to ansøgninger , serveren og klienten. Serveren håndterer alle klient-forbindelser , og kunden ansøgningen forbinder brugere til serverrummet til at sende beskeder . Instruktioner
1
Start Microsoft Visual Basic Express og derefter klikke på " Nyt projekt ". På venstre rude på skærmen , skal du vælge " Console Application ". Klik på "OK".
2
Tryk på " Ctrl " + " A ", og tryk derefter på " Slet". Kopier og indsæt følgende kode i din " Module1.vb " for at oprette serverprogrammet :
Import System.Net.Sockets
Import System.Text
Modul Module1 < br >
Dim clientsList Som New Hashtable
Sub Main ( )
Dim ServerSocket Da New TcpListener ( 8888)
Dim clientSocket Som tcpclient
Dim infiniteCounter Som Integer
Dim counter Som Integer
serverSocket.Start ()
msg ( " Chat -server Startet ...." )
counter = 0
infiniteCounter = 0
infiniteCounter = 1 Til 2
infiniteCounter = 1
counter + = 1
clientSocket = serverSocket.AcceptTcpClient ()
Dim bytesFrom ( 10024 ) Som Byte
Dim dataFromClient As String
Dim networkStream Som networkStream = _
clientSocket.GetStream ( )
networkStream.Read ( bytesFrom , 0, Cint ( clientSocket.ReceiveBufferSize ) )
dataFromClient = System.Text.Encoding.ASCII.GetString ( bytesFrom )
dataFromClient = _
dataFromClient.Substring (0, dataFromClient.IndexOf ( "$" ) )
clientsList ( dataFromClient ) = clientSocket
broadcast ( dataFromClient + " Nye " dataFromClient , falsk)
msg ( dataFromClient + " Nye chat room" )
Dim klient Da New handleClinet
client.startClient ( clientSocket , dataFromClient , Sub
Sub msg ( ByVal MESG As String )
mesg.Trim ()
Console.WriteLine ( ">> " + MESG )
< p > End Sub
Private Sub broadcast ( ByVal msg As String , _
ByVal uname As String , ByVal flag Som Boolean )
Dim Item Som DictionaryEntry
< p > For hver post i clientsList
Dim broadcastSocket Som tcpclient
broadcastSocket = ctype ( Item.Value , tcpclient )
Dim broadcastStream Som NetworkStream = _
broadcastSocket.GetStream ()
Dim broadcastBytes As [ Byte ] ()
p Hvis flag = true Så
broadcastBytes = Encoding.ASCII.GetBytes ( uname + "siger: " + msg )
Else
broadcastBytes = Encoding.ASCII.GetBytes (MSG )
End Hvis
broadcastStream.Write ( broadcastBytes , 0 , broadcastBytes . længde)
broadcastStream.Flush ()
Næste
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 hashtabelsamling ) < br >
Me.clientSocket = inClientSocket
Me.clNo = clineNo
Me.clientsList = CLIST
Dim ctThread Som Threading.Thread = Ny Threading.Thread ( AddressOf doChat )
ctThread.Start ()
End Sub
Private Sub doChat ()
Dim infiniteCounter As Integer
Dim requestCount As Integer
Dim bytesFrom ( 10024 ) Som Byte
Dim dataFromClient As String
Dim sendBytes Som [ Byte ] ()
Dim serverResponse As String
Dim rCount As String
requestCount = 0
infiniteCounter = 1 Til 2
infiniteCounter = 1
Prøv
requestCount = requestCount + 1
Dim networkStream Som networkStream = _
clientSocket.GetStream ()
networkStream.Read ( bytesFrom , 0, Cint ( clientSocket.ReceiveBufferSize ) )
dataFromClient = System.Text.Encoding.ASCII.GetString ( bytesFrom )
dataFromClient = _
dataFromClient.Substring (0, dataFromClient.IndexOf ( "$" ) )
msg ( "From klient - " + clNo + " :" + dataFromClient )
rCount = Convert.ToString ( requestCount )
broadcast ( dataFromClient , clNo , sand)
Fang ex Som Exception
MsgBox ( ex.ToString )
End Prøv
Næste
End Sub
End Class
End Module
3
Start Microsoft Visual Basic Express , og klik på " Nyt projekt ". på venstre rude på skærmen , skal du vælge " vinduer Forms Application ". Klik på" OK ". Klik på" Toolbox " rude, og derefter dobbeltklikke på" TextBox "for at tilføje en ny tekstboks. Tilføj yderligere to tekstbokse. Tilføj to knapper fra" Toolbox " -menuen. < br >
4
Dobbeltklik på formularen, og derefter trykke på " Ctrl" + "A. " Press Kopier og indsæt følgende kode i dit " Form1.vb "-modulet til at oprette klient program "Slet ". : Salg
Import System.Net.Sockets
Import System.Text
Public Class Form1
Dim clientSocket Da New System.Net.Sockets.TcpClient ()
Dim serverStream Som NetworkStream
Dim readData As String
Dim infiniteCounter As Integer
Private Sub Button1_Click ( ByVal afsender Som System.Object , _ < br >
ByVal e Som System.EventArgs ) Handles Button1.Click
Dim outStream Som Byte () = _
System.Text.Encoding.ASCII.GetBytes ( TextBox2.Text + " $ " )
serverStream.Write ( outStream , 0, outStream.Length )
serverStream.Flush ()
End Sub
Private Sub msg ( )
Hvis Me.InvokeRequired Så
Me.Invoke (New MethodInvoker ( AddressOf msg ) )
Else
TextBox1.Text = TextBox1.Text + Environment.NewLine + ">> " + readData
End If
End Sub
Private Sub Button2_Click ( ByVal afsender Som System.Object , _
< p> ByVal e Som System.EventArgs ) Handles Button2.Click
readData = " conected til Chat Server ... "
msg ()
clientSocket.Connect ( " 127.0.0.1 " , 8888)
' Label1.Text =" klient Socket Program - Server Forbundet ... "
serverStream = clientSocket.GetStream ()
Dim outStream som Byte () = _
System.Text.Encoding.ASCII.GetBytes ( TextBox3.Text + "$" )
serverStream.Write ( outStream , 0, outStream.Length ) < br >
serverStream.Flush ()
Dim ctThread Som Threading.Thread = Ny Threading.Thread ( AddressOf GetMessage )
ctThread.Start ()
End Sub < br >
Private Sub GetMessage ()
infiniteCounter = 1 Til 2
infiniteCounter = 1
serverStream = clientSocket.GetStream ()
Dim buffSize Som Integer
Dim InStream ( 10024 ) As Byte
buffSize = clientSocket.ReceiveBufferSize
serverStream.Read ( Instream , 0, buffSize )
Dim returndata As String = _
System.Text.Encoding.ASCII.GetString ( Instream )
readData = "" + returndata
msg ()
< p > Næste
End Sub
End Class
5
Kør server program først ved at trykke på " F5 " , og derefter køre klient program . Indtast dit navn i " Textbox3 " og klik " button2 " for at forbinde til server. Skriv en besked i " TextBox2 ", og klik derefter på " Button1 " for at sende en besked.