Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o tema • Voltar para a ficha do tema
[C#] Criando um servidor #1
4 participantes
Aldeia RPG :: Centro de aprendizagem :: Programação :: C#
Página 1 de 1
[C#] Criando um servidor #1
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)
_________________
Re: [C#] Criando um servidor #1
Gostei da sua aula socreto ta tudo bem explicativo e bem detalhado melhor parte que gostei foi não colocar códigos para copiarem e colar e bom pelo menos a galera já começa escrevendo algo continue =p
Ian- Ocasional
- Mensagens : 216
Créditos : 27
Re: [C#] Criando um servidor #1
Poxa cara, isso sim é realmente muito bom, você poderia disponibilizar o resultado da aula para download também.
+ 10 créditos
+ 10 créditos
Re: [C#] Criando um servidor #1
Obrigado, não coloquei os código pra fazer com que as pessoas que acompanharem a série realmente digitem o código para fixar e acabar aprendendo.
Boa idéia Marlos, nos próximos irei por.
Boa idéia Marlos, nos próximos irei por.
_________________
Re: [C#] Criando um servidor #1
Cara gostei pra caramba, vou criar meu servidor por C#(entre outras coisas para complementar meu server). Belo tutorial...
_________________
Singelinho- Ocasional
- Medalhas :
Mensagens : 228
Créditos : 93
Tópicos semelhantes
» [C#] Criando um servidor #2
» [C#] Criando um servidor #3
» Criando Servidor de naruto
» Movido: Criando Servidor de naruto
» Criando seu .exe
» [C#] Criando um servidor #3
» Criando Servidor de naruto
» Movido: Criando Servidor de naruto
» Criando seu .exe
Aldeia RPG :: Centro de aprendizagem :: Programação :: C#
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos