Tendo o conhecimento de como criar uma sala de bate-papo usando o Microsoft Visual Basic Express você pode economizar tempo quando você precisa criar um aplicativo sala de chat . Visual Basic Express está disponível gratuitamente para todos os interessados em criar aplicativos usando VB.NET . Uma sala de bate-papo envolve duas aplicações, o servidor eo cliente . O servidor lida com todas as conexões de clientes , bem como a aplicação cliente se conecta usuários a sala do servidor para enviar mensagens. Instruções
1
Inicie o Microsoft Visual Basic Express, e clique em "New Project ". No painel esquerdo da tela , selecione " Console Application ". Clique em " OK".
2
Pressione "Ctrl " + "A", e pressione " Excluir". Copie e cole o seguinte código em seu " Module1.vb " para criar o programa de servidor :
Imports System.Net.Sockets
Imports System.Text
Module Module1
Dim clientsList As New Hashtable
Sub Main () Dim
serverSocket As New TcpListener ( 8888 )
Dim clientSocket Como TcpClient
Dim infiniteCounter As Integer
Dim contador As Integer
serverSocket.Start ()
msg ("Servidor Iniciado chat .... " )
balcão = 0
infiniteCounter = 0
Para infiniteCounter = 1 To 2
infiniteCounter = 1
contador + = 1
clientSocket = serverSocket.AcceptTcpClient ()
Dim bytesFrom ( 10024 ) As Byte
Dim dataFromClient As String Dim
NetworkStream Como 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 + " Cadastrado " , dataFromClient , false)
msg ( dataFromClient + " sala de chat Cadastrado " )
cliente Dim As New handleClinet
client.startClient ( clientSocket , dataFromClient , Sub
Sub msg (ByVal mesg As String)
mesg.Trim ()
Console.WriteLine ( ">>" + mesg )
End Sub
transmissão Private Sub (ByVal msg As String , _ ByVal
uName As String , bandeira ByVal As Boolean )
Dim item como DictionaryEntry
Para cada item clientsList
Dim broadcastSocket Como TcpClient
broadcastSocket = CType ( Item.Value , TcpClient )
Dim broadcastStream Como NetworkStream = _
broadcastSocket.GetStream ()
Dim broadcastBytes Como [ Byte ] ()
Se flag = True Then
broadcastBytes = Encoding.ASCII.GetBytes ( uName + " diz: " + msg)
Else
broadcastBytes = Encoding.ASCII.GetBytes ( msg)
End If
broadcastStream.Write ( broadcastBytes , 0 , broadcastBytes . Comprimento)
broadcastStream.Flush ()
Próxima
End Sub
Public Class handleClinet
Dim clientSocket Como TcpClient
Dim ClNO As String Dim
clientsList Como Hashtable
Public Sub startClient (ByVal inClientSocket Como TcpClient , _ ByVal
clineNo As String , ByVal Clist Como Hashtable )
Me.clientSocket = inClientSocket
Me.clNo = clineNo
Me.clientsList = Clist
Dim ctThread Como Threading.Thread = Novo Threading.Thread (
Private Sub doChat ()
Dim infiniteCounter AddressOf doChat )
ctThread.Start ()
End Sub As Integer Dim
RequestCount As Integer Dim
bytesFrom ( 10024 ) As Byte
Dim dataFromClient As String Dim
sendBytes Como [ Byte ] ()
Dim ServerResponse As String
Dim RCount As String
RequestCount = 0
Para infiniteCounter = 1 To 2
infiniteCounter = 1
Tente
RequestCount = RequestCount + 1
Dim NetworkStream Como 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 cliente - " + ClNO + " :" + dataFromClient )
RCount = Convert.ToString ( RequestCount )
broadcast ( dataFromClient , ClNO , verdadeiro)
Pegar ex As Exception
MsgBox ( ex.ToString ) Experimente em
Fim
Próxima
End Sub
End Class
End Module
3
Inicie o Microsoft Visual Basic Express, e clique em "New Project ". no painel esquerdo da tela , selecione " Windows Forms Application ". Clique em" OK ". Clique no botão" Ferramentas " painel e , em seguida, clique duas vezes em " TextBox "para adicionar uma nova caixa de texto . Adicione mais duas caixas de texto . Adicione dois botões do menu" Ferramentas " . < br >
4
clique duas vezes o formulário e , em seguida, pressione " Ctrl " + " A. " Press " Excluir". Copie e cole o seguinte código em seu módulo " Form1.vb " para criar o programa de cliente :
Imports System.Net.Sockets
Imports System.Text
Public Class Form1
Dim clientSocket As New System.Net.Sockets.TcpClient ()
Dim serverStream Como NetworkStream
Dim readData As String Dim
infiniteCounter As Integer
Private Sub Button1_Click (sender System.Object , _ < br >
ByVal e As System.EventArgs ) Handles Button1.Click
Dim outStream As Byte () = _
System.Text.Encoding.ASCII.GetBytes ( TextBox2.Text + " $ ")
serverStream.Write ( outStream , 0, outStream.Length )
serverStream.Flush ()
End Sub Private Sub
msg ( )
Se Me.InvokeRequired Então
Me.Invoke (New MethodInvoker ( AddressOf msg) )
Else
TextBox1.Text = TextBox1.Text + Environment.NewLine + ">>" + readData
End If End Sub
Private Sub Button2_Click (sender System.Object , _
ByVal e As System.EventArgs ) Handles Button2.Click
readData = " conectado a Converse servidor ... "
msg ()
clientSocket.Connect ( " 127.0.0.1 " , 8888 )
' Label1.Text =" Programa Soquete cliente - Servidor Conectado ... "
serverStream = clientSocket.GetStream ()
Dim outStream As Byte () = _
System.Text.Encoding.ASCII.GetBytes ( TextBox3.Text + " $")
serverStream.Write ( outStream , 0, outStream.Length ) < br >
serverStream.Flush ()
Dim ctThread Como Threading.Thread = Novo Threading.Thread ( AddressOf getMessage )
ctThread.Start ()
End Sub
Private Sub getMessage ()
Para infiniteCounter = 1 To 2
infiniteCounter = 1
serverStream = clientSocket.GetStream ()
Dim buffSize As 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 = ""
msg () > Próxima
End Sub End Class
5
execute o programa de servidor primeiro com a tecla " F5" , e depois executar o programa cliente. Digite seu nome na " Textbox3 " e clique em " Button2 " para se conectar ao servidor. Digite uma mensagem na " TextBox2 ", e , em seguida, clique em " Button1 " para enviar uma mensagem.