{"id":18605930,"url":"https://github.com/varshneydevansh/efm-dc","last_synced_at":"2026-04-26T22:31:17.627Z","repository":{"id":160355462,"uuid":"112090924","full_name":"varshneydevansh/EFM-DC","owner":"varshneydevansh","description":"An intermediate QtNetwork chat application ","archived":false,"fork":false,"pushed_at":"2017-11-27T15:52:23.000Z","size":2836,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-16T19:47:47.178Z","etag":null,"topics":["cpp","html","qt","qtnetwork","xml"],"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/varshneydevansh.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,"zenodo":null}},"created_at":"2017-11-26T14:48:00.000Z","updated_at":"2017-11-26T15:57:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"e93fb341-2830-4cf7-85c0-ca2f278e4689","html_url":"https://github.com/varshneydevansh/EFM-DC","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/varshneydevansh/EFM-DC","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/varshneydevansh%2FEFM-DC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/varshneydevansh%2FEFM-DC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/varshneydevansh%2FEFM-DC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/varshneydevansh%2FEFM-DC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/varshneydevansh","download_url":"https://codeload.github.com/varshneydevansh/EFM-DC/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/varshneydevansh%2FEFM-DC/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32315711,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T21:09:39.134Z","status":"ssl_error","status_checked_at":"2026-04-26T21:09:21.240Z","response_time":129,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["cpp","html","qt","qtnetwork","xml"],"created_at":"2024-11-07T02:23:37.122Z","updated_at":"2026-04-26T22:31:17.611Z","avatar_url":"https://github.com/varshneydevansh.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EFM-DC\nAn Intermediate QtNetwork chat application. \n\n## Compiling:\n\n   I'm using C++11 and threads, so need to add these directives when compiling: **-std=c++11 -pthread**\n   \n   For example:\n   `g++ -std=c++11 -pthread socket.cpp main.cpp`\n\n   You can also use qmake (non qt5's qmake may generate errors)\n   ```\n   qmake talk.pro\n   make\n   ``` \n\n## Arguments for launching : (For Terminal Lovers)\n\nThe program now requires of bash arguments, please check them below:\n\n* **-h --help**\n  Display help message.\n* **-s --server**\n  Enter server mode.\n* **-c --client IP**\n  Enter client mode and connect that ip (port required).\n* **-p --port PORT**\n  Specify port for listening / connecting.\n* **-u --user USER**\n  Specify sender's name.\n\n\n## Basic test:\n\nIf you want to test it locally just follow this steps:\n\n1. Compile the program.\n1. Launch an instance in server mode and listen to a free port (**./ talk -s -p 8000**).\n1. Launch another instance in client mode with ip 127.0.0.1 and the same port (**-c 127.0.0.1 -p 8000**).\n1. Start messaging!\n\n![Screenshot](https://github.com/varshneydevansh/EFM-DC/blob/master/EFM-DC%20terminal/Screenshot%20from%202017-11-26%2021-04-13.png)\n\n## Features:\n\n1. The program communicates through SOCKETS.\n2. The communication is TCP.\n3. The messages' structures are, by now, just strings.\n4. Communication is also asynchronous due to the use of threads.\n5. You can host your own server, and all the users connected to you will see all the messages.\n6. Usernames are allowed!\n7. Also supports system's signals (sigterm, sighup...).\n8. History implemented under ~/.talk !\n\n## Usage:\n\n### I want to be the server:\n1. Compile.\n2. Execute talk with **-s**.\n3. Tell your friends your IP and the port talk showed on the screen.\n4. Talk with every one.\n4. For existing just write `/quit` or press `CTRL+D`.\n\n### I want to be the client:\n1. Compile.\n2. Execute talk with the IP and the PORT your friend told you. **-c IP -p PORT**.\n3. Talk with every one!\n4. For exiting just write `/quit` or press `CTRL+D`.\n\n### What is that username?:\nIf you didn't specified your username with **-u USERNAME** when launching talk, \nit will be the one on your $USER environment variable.\n\n### What if I forget any command?:\nFeel free to check it on **-h --help**\n\n### Are messages encrypted?:\nNope. I'm working on it.\n\n### History\nThe messages are saved on files. The history size will be as much 1MB. (It works as a circular buffer). \nYou can found your histories on **~/.talk/username.log**\n\n### How is the GUI?\nHere are a few screenshots, hope you like them:\n![Main window](https://github.com/varshneydevansh/EFM-DC/blob/master/EFM-DC%20GUI/Screenshot%20from%202017-11-26%2021-23-10.png)\n\n![Setup dialog](https://github.com/varshneydevansh/EFM-DC/blob/master/EFM-DC%20GUI/Screenshot%20from%202017-11-26%2020-34-19.png)\n\n\n### Do I HAVE TO use the GUI?\nNo, I know that there are *terminal lovers* out there (as the truth), you can keep using talk as always ;)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvarshneydevansh%2Fefm-dc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvarshneydevansh%2Fefm-dc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvarshneydevansh%2Fefm-dc/lists"}