P>

capaNET38.JPG

Clique aqui para ler todos os artigos desta edição

Conectividade

Crie um Chat usando Sockets

 

Neste artigo vou mostrar como podemos desenvolver um aplicativo que faça a comunicação através de Socket. Utilizando Socket é possível desenvolver desde servidores de aplicação, como um proxy, servidores HTTP, FTP, aplicativos P2P, Chat, Download Manager entre outros. Para simplificar vamos montar um projeto onde será feita a comunicação entre computares.

O que é Socket?

Socket é uma classe que interage com a camada de aplicação do protocolo IP, onde é possível comunicar-se com aplicativos e equipamentos de rede que serão exposto através de uma porta de comunicação. Um grande exemplo que podemos utilizar são os servidores HTTP, onde a porta disponibilizada é a 80. Para simplificar o entendimento vou demonstrar como desenvolver um Chat através da classe Socket.

Vamos montar um aplicativo que vai se comunicar com outras instâncias remotas do mesmo aplicativo, através da porta 3030. Não será necessário um servidor central para coordenar as mensagens. A principal funcionalidade do aplicativo é funcionar como um Chat, isso é, mandar e receber mensagens através de uma rede, seja ela uma rede local ou Internet.

Veja na Figura 1 como será o funcionamento do aplicativo. Note que o mesmo funciona como servidor e cliente, possibilitando uma comunicação ponto a ponto (P2P).

 

image004.jpg 

Figura 1. Esquema de funcionamento do aplicativo

Criando nosso aplicativo

Abra o Visual Studio 2005 e clique em File>New>Project, escolha o item Windows Application em Visual C#, dando o nome de “ChatSocket” para definir o nome do aplicativo. Em Solution Name digite “ChatSocket” e clique em OK (Figura 2).

 

image006.jpg

Figura 2. Criando um novo projeto do tipo Windows Application

 Inicialmente, o Visual Studio 2005 criou alguns arquivos, vamos alterar o nome do Form.cs para “frmChat.cs”. Agora vamos adicionar alguns controles antes de começar a implementação do código, como segue na Tabela 1. A tela da aplicação com os controles da Tabela 1 pode ser visualizada na Figura 3.

 

Controle

Nome

Text

Label

“lblNick”

“Nickname”

...

Quer ler esse conteúdo completo? Tenha acesso completo