{"id":20858143,"url":"https://github.com/arkasarkar19/ipc-multiuser-chat-system","last_synced_at":"2025-09-14T22:36:08.536Z","repository":{"id":84065805,"uuid":"218322455","full_name":"ArkaSarkar19/IPC-multiuser-chat-system","owner":"ArkaSarkar19","description":"Refer Readme.md","archived":false,"fork":false,"pushed_at":"2020-06-18T08:06:59.000Z","size":10,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-27T11:17:47.284Z","etag":null,"topics":["chat-system","inter-process-communication","mutex-synchronisation","operating-system","socket-programming","threading"],"latest_commit_sha":null,"homepage":"","language":"C","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/ArkaSarkar19.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":"2019-10-29T15:38:02.000Z","updated_at":"2020-06-20T08:24:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"b2f6432a-e50b-4260-b156-869667ebab2f","html_url":"https://github.com/ArkaSarkar19/IPC-multiuser-chat-system","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ArkaSarkar19/IPC-multiuser-chat-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArkaSarkar19%2FIPC-multiuser-chat-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArkaSarkar19%2FIPC-multiuser-chat-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArkaSarkar19%2FIPC-multiuser-chat-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArkaSarkar19%2FIPC-multiuser-chat-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ArkaSarkar19","download_url":"https://codeload.github.com/ArkaSarkar19/IPC-multiuser-chat-system/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArkaSarkar19%2FIPC-multiuser-chat-system/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275180167,"owners_count":25419065,"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-09-14T02:00:10.474Z","response_time":75,"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":["chat-system","inter-process-communication","mutex-synchronisation","operating-system","socket-programming","threading"],"created_at":"2024-11-18T04:44:51.490Z","updated_at":"2025-09-14T22:36:08.438Z","avatar_url":"https://github.com/ArkaSarkar19.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IPC-multiuser-chat-system\n* Multi-user Chat System. The code is in C. \n\n### IMPLEMENTATION \n* The system consists of **server.c** and **client.c**. IPC sockets were used. \u003c/br\u003e\n* Server treats every client differently creates a **thread** for each client so one or more clients can request the server at the same time. \u003c/br\u003e\n* Server is constantly listening for new connections via the **accept()** system call. If a client requests to send a message the server uses the **recv()** system call to get the message and then uses **send()** system call to send it to the required client. \u003c/br\u003e\n* Server keeps tracks of all the threads of the clients and once the server is terminated all the threads are wiped out one by one. \u003c/br\u003e\n * Client has two different threads one for receiving and one for sending. The receiving thread is running an infinite while loop which uses **recv()** system call connected to the **server socket**. The other thread takes input from the client to send it to other clients via the server. \u003c/br\u003e\n \n### COMPILATION \n* To compile it type the **make** command on the terminal. The executables server and client are created and have to be run individually. \u003c/br\u003e\n* Server has to be executed before the clients.\n\n        Commands :\n        $ make\n        $ ./server\n        $./client\n\n### USER INPUTS\n* If a User wants to send a message, has to first type the client socket to send to and then the message in the following line.\n* Example :\n\n          Available clients : |4 |5\n          Enter the client to send: 5 \n          Enter the message: hi\n          \n          Available clients : |4 |5\n          Enter the client to send: EVERYONE\n          Enter the message: hi\n          \n          ‘exit' command exits the client terminal\n          \n          (EVERYONE command sends message to all users connected to that server)\n          \n### EXPECTED OUTPUT\n* If a clients sends you a message it flashes on the terminal as :\n\n        Connected to Server\n        NEW MESSAGE : 5 says hi\n        \n### ERROR HANDLING\n* If a user enters a invalid socket number or a string its throws an error.\n* Ctrl C doesn’t terminate instantly but clears all the pending threads.\n\n### CITATIONS\n* ![http://beej.us/guide/bgipc/pdf/bgipc_USLetter.pdf](http://beej.us/guide/bgipc/pdf/bgipc_USLetter.pdf)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farkasarkar19%2Fipc-multiuser-chat-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farkasarkar19%2Fipc-multiuser-chat-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farkasarkar19%2Fipc-multiuser-chat-system/lists"}