Criar um servidor do zero é uma grande tarefa. No entanto, isso pode melhorar muito suas habilidades de programação e permitir que você as modifique de acordo com suas necessidades. Este tutorial usará python e programação de soquete de baixo nível para criar um servidor para que os clientes possam se comunicar uns com os outros. Isso também cobrirá apenas o processo no Windows. Algumas informações serão fornecidas nas instruções, mas se você quiser apenas o código, está fornecido nas figuras. (Nota: as instruções apresentadas aqui são apenas o básico).
Passos
Método 1 de 3: Instalando Python
Etapa 1. Baixe Python
Acesse o site principal do python e baixe o Python 2.7.10. Após o download, execute as etapas do instalador Python com as configurações padrão. Este link é fornecido aqui
Etapa 2. Execute o IDLE (GUI do Python)
Vá para a pasta Python 2.7 e execute IDLE (Python GUI), python agora deve estar no menu iniciar onde o IDLE está localizado.
Etapa 3. Crie um novo arquivo
Vá para Arquivo no canto superior esquerdo da janela recém-aberta e selecione Novo arquivo, você deve ter uma janela em branco aberta com o título Sem título.
Método 2 de 3: Criando o servidor
Etapa 1. Importe os módulos necessários
Os dois módulos necessários para este código são “socket” e “threading”. Isso pode ser feito digitando na primeira linha “from socket import *” e na próxima linha “import threading”.
Etapa 2. Crie um novo tópico
Isso irá lidar com a correspondência de 2 clientes entre si. Threads são processos que podem ser executados enquanto o programa principal é executado. Digite exatamente como mostra a figura. Isso configurará as variáveis no encadeamento para que possam ser chamadas posteriormente.
Etapa 3. Criar processo de thread
Para que os clientes se comuniquem diretamente, é necessário enviar informações uns aos outros, que incluem o endereço IP e a porta que estão usando. Para fazer isso você deve criar um objeto socket que pode ser feito com “variableName = socket (AF_NET, SOCK_DGRAM)”. Isso criará um objeto de soquete que usa o protocolo UDP. Próximo Ligue o soquete ao seu endereço IP com um certo número de porta com “roomSocket.bind (('', self.port))” A área em branco representa o seu próprio endereço IP do PC dentro da sua rede local e self.port atribui o número da porta que está incluído quando você chama este segmento. A última coisa que você tem a fazer com esse soquete é enviar informações por meio dele. Como este é um soquete UDP, você simplesmente deve saber o IP e a porta do computador para o qual está enviando informações, a sintaxe de envio é “socketName.sendto (IP, porta)"
Etapa 4. Crie as variáveis globais
Para esta etapa, você precisará definir várias variáveis, que incluem uma lista de usuários, números de portas, contagem de clientes, clientes para o encadeamento e o ID do quarto. Você também precisará criar um soquete para que seu servidor possa interagir com a internet. Isso é feito criando um novo objeto de soquete e vinculando-o ao seu endereço IP com um determinado número de porta. (O número da porta pode ser qualquer coisa, mas geralmente é algo alto para evitar que outro processo o use ou use números de porta reservados.)
Etapa 5. Crie o processo do servidor principal
Isso levará o endereço do cliente e também iniciará o thread criado anteriormente. Isso inclui esperar para receber dados do buffer e obter o endereço do cliente e salvá-lo para ser usado no thread. A maneira de obter informações de seu soquete é chamar por “socketName.recvfrom (1024)”, o número aqui é apenas a quantidade de bytes que é lida por vez. Neste exemplo, estamos armazenando-o em uma variável chamada userAddr e, quando isso acontecer, você pode salvar esse endereço na lista que foi criada na etapa 4. A instrução if criará um thread de sala se duas pessoas se conectarem e só criará uma sala quando duas conexões diferentes acontecem.
Etapa 6. Salve seu trabalho
Isso deve ser feito em um diretório de fácil acesso para que possa ser acessado facilmente para teste.
Método 3 de 3: teste
Etapa 1. Crie um cliente de teste
Este é um cliente muito básico que só controlará se o servidor enviou ou não as informações do outro cliente para o cliente atual. Observe que, ao contrário do código do servidor, este código requer um nome de servidor. Se você estiver executando tudo isso em um computador, o nome do servidor deve ser o nome do seu PC. Você pode descobrir o nome do seu computador clicando com o botão direito em Meu Computador e indo para Propriedades.
Etapa 2. Salve seu trabalho
Deve estar no mesmo diretório do código do servidor.
Etapa 3. Abra três janelas de comando diferentes
Vá ao menu iniciar e na barra de pesquisa digite “cmd” e pressione Enter. Faça isso três vezes. As janelas devem ser assim.
Etapa 4. Execute os programas
Você terá que digitar o caminho exato ao usar a janela de comando. Você precisará executar o código do servidor primeiro em uma janela de comando e, em seguida, o código do cliente de teste nas outras duas. Se tudo deu certo você receberá alguma coisa dessas mensagens em sua janela.
Avisos
- Este programa só funcionará ao executá-lo e testar clientes na mesma rede local.
- Python 2.7.10 está desatualizado e está chegando ao fim de seu suporte. Para continuar criando bons servidores, é recomendado que a versão mais recente do Python 3 seja instalada.