Programação  
 
Conhecimento computador >> Programação >> Programação Visual Basics >> 
Como fazer uma Sala de Chat em Visual Basic Express
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.

Anterior :

Próximo : No
  Os artigos relacionados
·Tipos de Caixas de Entrada em VBA 
·Quais são Subprocedimentos Visual Basic 
·Como exportar BMPs para GIFs em VB6 
·Como substituir um personagem em Vb.net 2003 
·Como converter VBS Com FreeBASIC 
·Como fazer uma proteção de tela no Visual Basic 2010 
·Como usar o Pivot Table Logic 
·Como adicionar dois valores no Visual Basic 
·Como fazer Stick Figures on Básico Verdadeiro 
·Como usar VB.NET Express para alterar a entrada de grav…
  Artigos em destaque
·Como obter um filtro de banda para trabalhar em Labview…
·Como excluir JPA em Java 
·Como fazer um Bounce objeto em C # 
·Como forçar o Construtor para uso não- Genérico Some…
·Como fazer upload de arquivos PDF em PHP 
·Como estender a vários modelos em Smarty 
·MySQL PHP Pesquisa Scripts 
·Como atualizar um objeto em uma coleção com VBA 
·Como conectar um JButton para um JTextField 
·Como usar a documentação da API Java 
Cop e direita © Conhecimento computador https://ptcomputador.com Todos os Direitos Reservados