e receberei dados em forma de string, por ser uma forma de transmissao de texto puro.Colocando em pratica: projetoDireto ao ponto, criaremos um simples programa de bate-papo de apenas um cliente so, utilizando esses conceitos. Voce pode baixar o projeto pronto (zipado) em: http://dl.dropbox.com/u/47975575/Tuto_Sockets.zip.1) Abra o Visual Basic 6. 2) Inicie um projeto do tipo Standard Exe.3) Importe o controle Winsock.4) Crie uma instancia dele no form (tambem ensinado na secao "conceitos").5) Nomeie o controle winsock para "ws". 6) Crie no form: Cinco textboxes, Cinco labeis, Dois options, Um botao, Um timer. De modo que fiquem posicionados e identificados deste modo:No codigo:'Variaveis:Dim OtherTyping As Boolean 'indica se o outro esta digitandoDim MeTyping As Boolean 'indica se eu estou digitandoDim OtherApelido As String 'Apelido do outroFunction STS(ByVal nState As Integer) As String'Resumo: Dependendo o codigo do nState, retorna um estado em texto.'0: fechado'1: Aberto (UDP)'2: Ouvindo'3: Conexao pendente'4: Resolvendo host'5: Host resolvido'6: Conectando'7: conectado'8: Fechando (cliente desconectou)'9: Erro. Select Case nState Case 0 STS = "Fechado" Case 8 STS = "Fechando..." Case 7 STS = "Conectado" Case 6 STS = "Conectando..." Case 3 STS = "Conexao Pendente" Case 9 STS = "Erro" Case 5 STS = "Host resolvido" Case 2 STS = "Ouvindo" Case 1 STS = "Aberto" Case 4 STS = "Resolvendo host" End SelectEnd FunctionPrivate Sub bConnect_Click() 'funcao disparada no clique do botao desconectar.'Resumo do procedimento: Se o soquete nao estiver conectado, ele ordena a desconexao.'Caso estiver fechado, ele verificara qual modo foi selecionado.'Se o modo cliente foi selecionado, define o host remoto e a porta remota para se conectar.'Se o usuario inseriu valores errados, disparara um erro, que sera tratado'na label erro, mostrando uma mensagem de erro.'Se o modo servidor foi selecionado, define a porta local e ordena que o soquete ouca aquela porta.On Error GoTo erro If ws.State <> sckClosed Then ws.Close Else If Option1.Value Then 'cliente ws.RemoteHost = tHost.Text ws.RemotePort = tPorta.Text ws.Connect Else 'servidor ws.LocalPort = tPorta.Text ws.Listen End If End IfExit Suberro:MsgBox "Host ou ip invalido!", vbCritical, "Erro!"End SubPrivate Sub clientmessage_Change()'Resumo: quando o usuario digitar, verifica se o soquete esta conectado para enviar um comando que'indicara ao outro aplicativo que o usuario esta digitando. If ws.State = sckConnected And clientmessage.Text <> "" Then ws.SendData "%%%%TYP&&" End IfEnd SubPrivate Sub clientmessage_KeyDown(KeyCode As Integer, Shift As Integer)'Resumo: se o usuario pressionar enter, a mensagem sera enviada (se o soquete estiver conectado) e'o texto apagado. If KeyCode = 13 Then '13 e o codigo da tecla enter If ws.State = sckConnected Then ws.SendData clientmessage.Text clientmessage.Text = "" End IfEnd SubPrivate Sub tApelido_KeyDown(KeyCode As Integer, Shift As Integer)'Resumo: se o usuario "mudar de nick", envia esse novo apelido ao outro. If KeyCode = 13 And ws.State = sckConnected Then ws.SendData "%%%%COM&& " & tApelido.Text End IfEnd SubPrivate Sub Timer1_Timer()'Resumo: habilita o controle thost apenas se for cliente e o soquete estiver fechado.'Habilita o controle tporta apenas se o soquete estiver fechado.'Habilita os modos se o soquete estiver fechado'Se o estado do soquete for "fechando", ou "erro", fecha a conexao.'Se o estado for fechado, entao:'Exibe o status "Desconectado"'Se for Conectado, entao:'Se