Giter Club home page Giter Club logo

psiw's Introduction

psiw

This is a project for the university.

  • Course: System and concurrent programming
  • Topic: Chat application using IPC mechanisms based on server / client structure

Compiling

  1. Clone this repository.
git clone https://github.com/shym3q/psiw.git && cd psiw
  1. Run the build script. The output binary 'chat' should be in the in the current directory.
./build.sh && cd bin

Usage

  1. Launch the server.
./chat server
  1. In separate terminals or tmux windows / panes launch as many clients as you wish.
./chat client

About

  • There is a PROTOCOL file in this repo containing details about the code (for polish native speakers, so far).
  • The code was tested mainly on Arch Linux and compiled with GCC (version 13.2.1).

TODO

  • Connecting clients to the server.
  • Partial implementation of registering a topic.
  • Splitting messages into separate channels.
  • The client messing up a request does not block the server.
  • The server handling concurrent requests.
  • GUI of the application defined.
  • A bus / a message broker implemented.
  • Closing the client with the server being informed.
  • Avoided using the global variables.
  • Avoided forking with each request.

psiw's People

Contributors

kibirisu avatar agnjed avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.