{"id":19379170,"url":"https://github.com/urvishkapadiya/multithreading-client-server","last_synced_at":"2025-06-14T13:04:18.680Z","repository":{"id":192944554,"uuid":"687787111","full_name":"urvishkapadiya/Multithreading-client-server","owner":"urvishkapadiya","description":"Client-Server using Multithreading","archived":false,"fork":false,"pushed_at":"2023-09-06T02:32:01.000Z","size":6,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-24T16:32:01.626Z","etag":null,"topics":["client-server","filehandling","multithreading","python","socket-programming"],"latest_commit_sha":null,"homepage":"","language":"Python","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/urvishkapadiya.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}},"created_at":"2023-09-06T02:17:32.000Z","updated_at":"2023-09-06T02:35:31.000Z","dependencies_parsed_at":"2023-09-06T03:31:27.648Z","dependency_job_id":"d558456a-0a87-452b-9b35-8e59e3cc2de2","html_url":"https://github.com/urvishkapadiya/Multithreading-client-server","commit_stats":null,"previous_names":["urvishkapadiya/multithreading-client-server"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/urvishkapadiya/Multithreading-client-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urvishkapadiya%2FMultithreading-client-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urvishkapadiya%2FMultithreading-client-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urvishkapadiya%2FMultithreading-client-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urvishkapadiya%2FMultithreading-client-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/urvishkapadiya","download_url":"https://codeload.github.com/urvishkapadiya/Multithreading-client-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urvishkapadiya%2FMultithreading-client-server/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259820794,"owners_count":22916546,"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":["client-server","filehandling","multithreading","python","socket-programming"],"created_at":"2024-11-10T09:09:19.265Z","updated_at":"2025-06-14T13:04:18.651Z","avatar_url":"https://github.com/urvishkapadiya.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Multithreading-client-server\n\n**Overview**\n\n**Server:** The server initializes its socket and internal variables and waits for incoming connections from clients. When a client connects, the server handles the connection in a new thread, allowing multiple clients to interact simultaneously. The server sends a random 10-byte token to the client, which is used as an End of Message (EOF) indicator. The server sends CWD information to the client before receiving each command, maintaining a separate CWD for each client.\n\n**Client:** The client initializes its internal variables, establishes a connection to the server socket, receives the EOF token, and waits for user commands. Before each command, the client displays the received CWD from the server. After the server executes a command and sends back the updated directory information, the client displays it to the user and waits for the next command. The client can exit gracefully by entering the \"exit\" command.\n\nPlease note that the client assumes a fixed working directory on the client side, where files uploaded or downloaded are saved. The server's CWD can be changed using the \"cd\" command.\n\n**Functionalities**\n\nThe application supports the following commands:\n\n**cd:** Change the current working directory on the server.\n\ncd products\ncd ..\n\n**mkdir:** Create a new directory on the server inside the current working directory.\n\nmkdir client_1_files\n\n**rm:** Remove a file or directory from the current working directory on the server.\n\nrm about.txt\nrm animals\n\n**ul:** Upload a file from the client to the current working directory on the server.\n\nul orca.jpg\n\n**dl:** Download a file from the current working directory on the server to the client.\n\ndl about.txt\n\n**exit:** Exit the application.\n\nexit\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furvishkapadiya%2Fmultithreading-client-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Furvishkapadiya%2Fmultithreading-client-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furvishkapadiya%2Fmultithreading-client-server/lists"}