Programação  
 
Conhecimento computador >> Programação >> Programação Visual Basics >> 
Como o código de software chat sem usar um banco de dados
Saber como codificar uma sala de chat sem usar um banco de dados pode ajudá-lo a criar um aplicativo cliente /servidor sem ter que gastar tempo criando um banco de dados . Um programa de bate-papo é criado usando dois aplicativos, o cliente eo servidor. A aplicação de servidor irá lidar com todas as conexões do cliente para estabelecer a comunicação . O programa cliente é instalado em qualquer computador que querem se conectar ao servidor de bate-papo com outros clientes. Você pode criar esse aplicativo usando o Microsoft Visual Basic.NET , também conhecido como VB.NET . Coisas que você precisa
Microsoft Visual Basic Express

Visualizar Mais instruções
1

Abra o Microsoft Visual Basic Express , clique em " New Project ... " no painel esquerdo da tela, selecione " Console Application ". Clique em " OK".
2

Pressione " Ctrl" e "A", em seguida, pressione "Delete" para remover todo o código existente. Copie e cole o código abaixo em seu " Module1.vb " para criar o aplicativo do servidor :

System.Net.Sockets importações

Imports System.Text

Module Module1

Dim hshTbl As New Hashtable

Sub Main () Dim

svrSckt As New TcpListener ( 8888 )

Dim TClient Como TcpClient

Dim infntCntr As Integer Dim

cntr As Integer

svrSckt.Start ()

msg ("Servidor Iniciado para conversar .... " )

cntr = 0

infntCntr = 0

Para infntCntr = 1 To 2

infntCntr = 1

CNTR + = 1

TClient = svrSckt.AcceptTcpClient ()

Dim btsFrom ( 10024 ) As Byte

Dim clientData As String Dim

NetworkStream Como 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


broadcast ( clientData + " juntou-se " , ClientData , false)

MSG ( clientData + " juntou-se sala de chat " )

cliente Dim As New handleClinet

client.startClient ( TClient , clientData , Sub


Sub msg (ByVal As String msg )

msg.Trim ()

Console.WriteLine ( ">>" + msg)

End Sub

transmissão Private Sub (ByVal msg As String , _ ByVal

usrname As String , ByVal flg As Boolean )

Dim dicEntry Como DictionaryEntry

Para cada dicEntry Em hshTbl

Dim broadcastSocket Como TcpClient

broadcastSocket = CType ( dicEntry.Value , TcpClient )

Dim broadcastStream Como NetworkStream = _

broadcastSocket.GetStream ()

Dim broadcastBytes Como [ Byte ] ()

Se flg = True Then

broadcastBytes = Encoding.ASCII.GetBytes ( usrname + " 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 TClient Como TcpClient

Dim ClNO As String Dim

hshTbl Como Hashtable

Public Sub startClient (ByVal inClientSocket Como TcpClient , _ ByVal

clnNum As String , ByVal hsTbl Como Hashtable )

Me.tClient = inClientSocket

Me.clNo = clnNum

Me.hshTbl = hsTbl

Dim ctThread Como Threading.Thread = Novo Threading.Thread (

Private Sub doChat ()

Dim infntCntr AddressOf doChat )

ctThread.Start ()

End Sub As Integer Dim

rqstCnt As Integer Dim

btsFrom ( 10024 ) As Byte

Dim clientData As String Dim

btsSend Como [ Byte ] ()

Dim responseSrvr As String

Dim RCNT As String

rqstCnt = 0

Para infntCntr = 1 To 2

infntCntr = 1

Tente

rqstCnt = rqstCnt + 1

Dim NetworkStream Como NetworkStream = _

tClient.GetStream ()

networkStream.Read ( btsFrom , 0, CInt ( tClient.ReceiveBufferSize ) )

clientData = System.Text.Encoding.ASCII.GetString ( btsFrom )

clientData = _

clientData.Substring ( 0, clientData.IndexOf ( "$" ) )

msg ( "Do cliente :" + ClNO + " :" + clientData )

RCNT = Convert.ToString ( rqstCnt )

broadcast ( clientData , ClNO , verdadeiro)

Pegar ex As Exception

MsgBox ( ex.ToString ) Experimente em

Fim

Próxima
End Sub


End Class

End Module
3

Abra uma nova instância do Microsoft Visual Basic Express , clique em " New Project ... " no painel esquerdo do seu tela, selecione " Windows Forms Application ". Clique em " OK". Clique no painel " Ferramentas " , clique duas vezes em " TextBox " para adicionar uma nova caixa de texto . Adicione mais duas caixas de texto utilizando o mesmo método. Adicione dois botões de o menu " Ferramentas " .
4

clique duas vezes no formulário, pressione "Ctrl" e "A", em seguida, pressione "Delete" para remover todo o código existente. Copie e cole o código abaixo em seu módulo " Form1.vb " para criar o programa cliente :

System.Net.Sockets importações

Imports System.Text

Public Class Form1

Dim clntSckt As New System.Net.Sockets.TcpClient ()

Dim srvrStrm Como NetworkStream

Dim rddata As String Dim

infCntr As Integer

Private Sub Button1_Click (sender System.Object , _

ByVal e As System.EventArgs ) Handles Button1.Click

Dim streamOut As Byte () = _

System.Text . Encoding.ASCII.GetBytes ( TextBox2.Text + " $")

srvrStrm.Write ( streamOut , 0, streamOut.Length )

srvrStrm.Flush ()

End Sub

Sub msg privada ()

Se Me.InvokeRequired Então

Me.Invoke (New MethodInvoker ( AddressOf msg) )

Else < br >

TextBox1.Text = TextBox1.Text + Environment.NewLine + ">>" + rddata

End If End Sub


Private Sub Button2_Click ( sender System.Object , _

ByVal e As System.EventArgs ) Handles Button2.Click

rddata = " conectado a conversar servidor ... " msg

( )

clntSckt.Connect ( "127.0.0.1" , 8888 )

srvrStrm = clntSckt.GetStream ()

Dim streamOut As Byte () = _

System.Text.Encoding.ASCII.GetBytes ( TextBox3.Text + " $")

srvrStrm.Write ( streamOut , 0, streamOut.Length )

srvrStrm.Flush ()

Dim ctThread Como Threading.Thread = Novo Threading.Thread ( AddressOf getMessage )

ctThread.Start ()

End Sub Private Sub

getMessage ()

Para infCntr = 1 To 2

infCntr = 1

srvrStrm = clntSckt.GetStream ()

Dim buffSize As Integer

Dim inStream ( 10024 ) As Byte

buffSize = clntSckt.ReceiveBufferSize

srvrStrm.Read ( inStream , 0, buffSize )

Dim returndata As String = _

System.Text.Encoding.ASCII.GetString ( inStream )

rddata = "" + returndata

msg ()

Próxima

End Sub

End Class
5

Execute o programa de servidor primeiro com a tecla " F5 ". Inicie o programa de cliente com a tecla " F5 ". Digite seu nome na " Textbox3 " e clique em " Button2 " para estabelecer uma conexão com o programa servidor.
6

Digite uma mensagem na " TextBox2 "e clique em " Button1 "para enviar sua mensagem. a mensagem será exibida na janela da saída servidor.

Anterior :

Próximo : No
  Os artigos relacionados
·Como enviar dados de formulário do Microsoft Word para…
·Como fechar um formulário em VB.NET 
·Projetos VB para a escola 
·Como fazer seu WPF exibição aplicativo de navegador e…
·Visual Basic.Net Jogos Tutorial 
·Como adicionar um controle no Visual Basic for Applicat…
·Como usar o controle do WMP em Vb.Net 
·Como fazer um relógio usando VB6 
·Como criar um JPEG usando o Visual Basic 2010 Express &…
·Como editar chaves do registro em VB.Net 
  Artigos em destaque
·Como calcular o número de linhas em um arquivo usando …
·Como criar um formulário de inscrição no site 
·Visual Basic Arrays Tutorial 
·Apresentação do PowerPoint Tutorial : Núcleo Java 
·Como reinstalar o Rtl100.Bpl 
·Como usar CGI para exibir um arquivo XLS em um navegado…
·Java IRC Bot Tutorial 
·Como Fazer um Web Browser 
·Como declarar uma matriz em funções Perl 
·O que é a coesão em Engenharia de Software 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados