https://github.com/cpscript/irc-client
A simple "internet relay chatting"(IRC) client built using C based from "https://github.com/IanMarcoMoffett/mini-irc-client" :3
https://github.com/cpscript/irc-client
c forum forums ipv4 irc irc-client irc-protocol irc-server makefile network
Last synced: 3 months ago
JSON representation
A simple "internet relay chatting"(IRC) client built using C based from "https://github.com/IanMarcoMoffett/mini-irc-client" :3
- Host: GitHub
- URL: https://github.com/cpscript/irc-client
- Owner: CPScript
- License: mit
- Created: 2024-09-20T12:38:40.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-10-02T18:58:57.000Z (9 months ago)
- Last Synced: 2025-03-23T01:17:44.528Z (3 months ago)
- Topics: c, forum, forums, ipv4, irc, irc-client, irc-protocol, irc-server, makefile, network
- Language: C
- Homepage:
- Size: 49.8 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# IRC-Client v2
> A command-line IRC client written in C that allows users to connect to an IRC server, join a channel, and send messages. This program provides a simple and intuitive interface for interacting with IRC servers.## Features
- **Improved Error Handling**: Robust error handling ensures stability and reliability.
- **Code Organization**: Modular code structure for better readability and maintainability.
- **Memory Management**: Efficient use of system resources with no memory leaks.
- **Logging**: Comprehensive logging for debugging and tracking program execution.
- **Threading**: Concurrent input/output handling using threads for enhanced performance.## How to Use
### Compiling the Program
1. Navigate to the directory containing the `Makefile`.
2. Run the command `make` to compile the program.
3. The executable file `ircy` will be created in the `bin` directory.### Running the Program
1. Navigate to the `bin` directory.
2. Run the command:
```bash
./ircy -s -n -c
```
3. Replace `` with the hostname or IP address of the IRC server.
4. Replace `` with your desired nickname.
5. Replace `` with the channel you wish to join.Example: `./ircy -s irc.example.com -n Disease -c channel-1`
## Using the Program
Type messages to send them to the channel.
Use IRC commands like `/join` to switch channels or `/quit` to exit the program.### Available Options
- `-s `: Specify the IRC server to connect to.
- `-n `: Specify the nickname to use.
- `-c `: Specify the channel to join.## Changes & Additions
- **Error Handling**: Enhanced error handling for socket and connection operations.
- **Code Organization**: Refactored the main function into separate, modular functions.
- **Code Style**: Improved readability with consistent formatting and descriptive variable names.
- **Security**: Input validation and safer string manipulation techniques.
- **Performance**: Non-blocking and asynchronous I/O for improved responsiveness.
- **Portability**: Utilized portable functions for network operations.
- **Command-line Argument Parsing**: Implemented using the getopt library.
- **IRC Protocol Implementation**: Added support for handling PING/PONG messages.
- **User Interface**: Enhanced command-line interface with additional features.## Contributing
Contributions are welcome! Please fork the repository and submit a pull request with your improvements.
#### License
> This project is licensed under the MIT License. 2024