{"id":21000419,"url":"https://github.com/infinitemarcus/java-file-sending","last_synced_at":"2025-08-02T21:13:42.496Z","repository":{"id":111942385,"uuid":"392421363","full_name":"InfiniteMarcus/Java-File-Sending","owner":"InfiniteMarcus","description":"Aplicações TCP e UDP em Java para envio/recebimento de arquivos","archived":false,"fork":false,"pushed_at":"2021-08-03T20:24:53.000Z","size":61,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-05T07:44:27.058Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/InfiniteMarcus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2021-08-03T18:47:27.000Z","updated_at":"2021-12-20T03:56:37.000Z","dependencies_parsed_at":"2023-03-23T21:26:27.695Z","dependency_job_id":null,"html_url":"https://github.com/InfiniteMarcus/Java-File-Sending","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/InfiniteMarcus/Java-File-Sending","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InfiniteMarcus%2FJava-File-Sending","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InfiniteMarcus%2FJava-File-Sending/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InfiniteMarcus%2FJava-File-Sending/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InfiniteMarcus%2FJava-File-Sending/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/InfiniteMarcus","download_url":"https://codeload.github.com/InfiniteMarcus/Java-File-Sending/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InfiniteMarcus%2FJava-File-Sending/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268454956,"owners_count":24253165,"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","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-19T08:10:31.983Z","updated_at":"2025-08-02T21:13:42.366Z","avatar_url":"https://github.com/InfiniteMarcus.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Java-File-Sending\n\nEste repositório possui dois tipos de aplicações cliente-servidor de envio/recebimento de arquivos em Java, uma com implementação utilizando o protocolo **TCP** e uma com **UDP**.\n\n## Propósito\n\nEstas aplicações foram desenvolvidas para estudar e comparar as diferentes implementações de serviços da camada de transporte de redes na linguagem Java. \n\nÉ conhecido que o protocolo TCP possui diversas vantagens sobre o UDP, principalmente em termos de retransmissão de dados e controle de fluxo. No entanto, também é comumente notável que a maior robustez deste primeiro protocolo tende a gerar maiores tempos de execução que o segundo.\n\nEste repositório, então, representa uma pequena prova de conceito desta diferenciação entre ambos.\n\n## Execução\n\nPara executar os códigos, basta entrar no diretório `src`, escolher entre `tcp` ou `udp` e executar separadamente os códigos cliente e servidor.\n\nPara o cliente, na pasta `cliente`:\n\n```sh\n  javac Cliente.java\n  java Cliente\n```\n\nPara o servidor, na pasta `servidor`:\n\n```sh\n  javac Servidor.java\n  java Servidor\n```\n\n## Comparação\n\nPara comparar as diferentes implementações, foram coletados os dados de tempo de execução entre elas, tanto ao enviar arquivos quanto receber. Estes valores, em milisegundos, foram agrupados em gráficos de dispersão. As médias e desvios padrão também foram calculados.\n\nTodos os dados estão na pasta `comp`, na planilha `data.xls`.\n\n## Imagens\n\n\u003cp align=\"center\"\u003e \u003cstrong\u003e Gráficos de comparação de envio de arquivos: \u003c/strong\u003e \u003c/p\u003e\n\n![Comparação de envio TCP vs UDP](https://github.com/Infinitemarcus/Java-File-Sending/blob/main/img/send.png)\n\n\u003cp align=\"center\"\u003e \u003cstrong\u003e Gráficos de comparação de recebimento de arquivos: \u003c/strong\u003e \u003c/p\u003e\n\n![Comparação de recebimento TCP vs UDP](https://github.com/Infinitemarcus/Java-File-Sending/blob/main/img/receive.png)\n\n## Autor\n\n* Marcus Vinícius N. Garcia ([Infinitemarcus](https://github.com/Infinitemarcus))\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfinitemarcus%2Fjava-file-sending","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finfinitemarcus%2Fjava-file-sending","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfinitemarcus%2Fjava-file-sending/lists"}