Vi que muitos se interessam em trabalhar com sockets, por isso estarei criando alguns tutoriais de como trabalhar com aplicações Client/Server.
Não pretendo focar muito nos conceitos mas explicarei o máximo possível, afinal já existem muitos tutoriais focados nos conceitos e lógica.
Estarei utilizando Visual Studio 2013 Professional, ele é pago, porém para quem precisa de um mais simples pode baixar o Visual Studio 2013 for Desktop, tem suporte a VB, C# e C++.
Vamos criar um novo projeto chamado ServidorAula. Ao iniciar você deverá adicionar os seguintes componentes (as propriedades podem se alteradas da aba Properties):
Pronto, no final teremos algo próximo a isso:
Pressione Ctrl + Alt + 0 para abrir o arquivo de código do Form.
Na parte onde se importa as classes (using...), troque as que estão la por essas:
Por enquanto serão as únicas que usaremos.
Crie as seguintes variáveis:
Agora crie um método para iniciar o servidor, com nome de Start, não receberá nenhum argumento inicial:
Nele armazenamos o nome do servidor e a porta correspondente dentro das variáveis criadas anteriormente. Agora temos que iniciar de fato o servidor:
O método Start da classe TcpListener pode receber o argumento backlog que seria o limite de conexões, não costumo usar mas que se interessar fique a vontade.
Agora que já temos um "servidor" por assim dizer, precisamos de um loop para atualizar o mesmo e verificar se há conexões pendentes, aceitar conexões de clients, receber e enviar as packets.
Para isso tem vários meios mas o que achei melhor é implementar esse loop dentro do método Idle, que é quando o programa encerra o processamento e entra em modo ocioso.
Vamos abrir o arquivo Program.cs (pode ser visto no Solution Explorer).
Troque o código pelo seguinte:
Pode-se notar que o MainLoop está vermelho pois o método ainda não foi criado, então volte ao código do form e crie o seguinte método:
Iremos criar uma variável para ativar/desativar o loop do server e um método para Parar o servidor:
Nos próximos tutoriais irei tentar explicar melhor cada função, esse é meu primeiro tutorial sobre assunto e creio que não deixei as coisas mutio claras, qualquer dúvida comentem no tópico que estarei esclarecendo.
Não pretendo focar muito nos conceitos mas explicarei o máximo possível, afinal já existem muitos tutoriais focados nos conceitos e lógica.
Estarei utilizando Visual Studio 2013 Professional, ele é pago, porém para quem precisa de um mais simples pode baixar o Visual Studio 2013 for Desktop, tem suporte a VB, C# e C++.
Vamos criar um novo projeto chamado ServidorAula. Ao iniciar você deverá adicionar os seguintes componentes (as propriedades podem se alteradas da aba Properties):
- Label: [Text: Nome; Name: lblName]
- Label: [Text: Porta; Name: lblPort]
- TextBox: [Name: txtName]
- TextBox: [Name: txtPort]
- Button: [Text: Iniciar; Name: btnStart]
- Button: [Text: Parar; Name: btnStop]
Pronto, no final teremos algo próximo a isso:
Pressione Ctrl + Alt + 0 para abrir o arquivo de código do Form.
Na parte onde se importa as classes (using...), troque as que estão la por essas:
Por enquanto serão as únicas que usaremos.
Crie as seguintes variáveis:
Agora crie um método para iniciar o servidor, com nome de Start, não receberá nenhum argumento inicial:
Nele armazenamos o nome do servidor e a porta correspondente dentro das variáveis criadas anteriormente. Agora temos que iniciar de fato o servidor:
O método Start da classe TcpListener pode receber o argumento backlog que seria o limite de conexões, não costumo usar mas que se interessar fique a vontade.
Agora que já temos um "servidor" por assim dizer, precisamos de um loop para atualizar o mesmo e verificar se há conexões pendentes, aceitar conexões de clients, receber e enviar as packets.
Para isso tem vários meios mas o que achei melhor é implementar esse loop dentro do método Idle, que é quando o programa encerra o processamento e entra em modo ocioso.
Vamos abrir o arquivo Program.cs (pode ser visto no Solution Explorer).
Troque o código pelo seguinte:
Pode-se notar que o MainLoop está vermelho pois o método ainda não foi criado, então volte ao código do form e crie o seguinte método:
Iremos criar uma variável para ativar/desativar o loop do server e um método para Parar o servidor:
Nos próximos tutoriais irei tentar explicar melhor cada função, esse é meu primeiro tutorial sobre assunto e creio que não deixei as coisas mutio claras, qualquer dúvida comentem no tópico que estarei esclarecendo.
Última edição por Paulo Soreto em Sex Abr 04, 2014 1:36 pm, editado 1 vez(es)