{"id":19839591,"url":"https://github.com/pedrior/raw-udp-socket","last_synced_at":"2025-05-01T19:30:22.229Z","repository":{"id":238026774,"uuid":"792199139","full_name":"pedrior/raw-udp-socket","owner":"pedrior","description":"Esse repositório contém uma implementação de um protocolo UDP utilizando Socket RAW como projeto da disciplina de Redes de Computadores","archived":true,"fork":false,"pushed_at":"2024-05-06T11:41:46.000Z","size":22,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-28T22:20:56.762Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pedrior.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-26T07:16:51.000Z","updated_at":"2024-05-09T13:38:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"6282914c-3a45-43ec-bc14-5832c50e1bc7","html_url":"https://github.com/pedrior/raw-udp-socket","commit_stats":null,"previous_names":["pedrior/raw-udp-socket"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedrior%2Fraw-udp-socket","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedrior%2Fraw-udp-socket/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedrior%2Fraw-udp-socket/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedrior%2Fraw-udp-socket/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pedrior","download_url":"https://codeload.github.com/pedrior/raw-udp-socket/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251932517,"owners_count":21667157,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T12:23:19.419Z","updated_at":"2025-05-01T19:30:22.224Z","avatar_url":"https://github.com/pedrior.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Projeto de Redes: RAW UDP Socket \n\nImplemente dois clientes (um utilizando socket UDP e outro utilizando socket RAW) de uma\naplicação do tipo cliente/servidor que encaminha requisições para o servidor que está executando através\ndos protocolos UDP/IP no endereço IP 15.228.191.109 e porta 50000. Cada cliente deve solicitar ao\nusuário a escolha de um dos tipos de requisição abaixo:\n1. Data e hora atual;\n2. Uma mensagem motivacional para o fim do semestre;\n3. A quantidade de respostas emitidas pelo servidor até o momento.\n4. Sair.\n\nUma vez que o usuário tenha feito a sua escolha, o cliente deve encaminhar uma requisição\ndevidamente formatada para o servidor, de acordo com o formato de mensagem especificado abaixo. O\nservidor por sua vez emitirá uma resposta de volta para o cliente utilizando o mesmo formato de\nmensagem. Em seguida o cliente deverá exibir a resposta recebida pelo servidor de uma forma adequada\npara a legibilidade pelo usuário final. Por fim, o programa cliente deverá aguardar novas requisições do\ncliente até que o usuário selecione a opção “Sair”.\n\n## FORMATO DAS MENSAGENS DE REQUISIÇÃO/RESPOSTA\n\n| 4 bits  | 4 bits |    16 bits    |     8 bits    |    N bits   |\n|---------|--------|---------------|---------------|-------------|\n| req/res |  tipo  | identificador | Tamanho (res) |   Resposta  |\n\n- __req/res__: indicação para mensagem do tipo requisição (bits 0000) ou resposta (bits 0001);\n  \n- __tipo__: indicação do tipo de requisição ou resposta. Bits 0000 para solicitação de data, bits\n0001 para solicitação de frase motivacional para o fim do semestre e bits 0010 para\nquantidade de respostas emitidas pelo servidor. O servidor ainda pode emitir uma resposta\ncom o tipo 0011 para indicar que recebeu uma requisição inválida do cliente;\n\n- __identificador__: número não negativo de 2 bytes determinado pelo cliente. O cliente deve\nsortear um número entre 1 e 65535 toda vez que for enviar uma nova requisição para o\nservidor. O identificador 0 é reservado para o servidor informar o recebimento de uma\nrequisição inválida;\n\n- __tamanho (res)__: campo utilizado apenas em respostas geradas pelo servidor. Indica\no tamanho da resposta propriamente ditas, em número de bytes (1 a 255). O tamanho 0 é\nreservado para quando o servidor envia uma resposta indicando o recebimento de uma\nrequisição inválida;\n\n- __resposta__: uma sequência de bytes contendo a resposta\nsolicitada pelo usuário. Caso o servidor esteja informando o recebimento de uma\nrequisição inválida, nenhum byte é encaminhado neste campo.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpedrior%2Fraw-udp-socket","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpedrior%2Fraw-udp-socket","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpedrior%2Fraw-udp-socket/lists"}