Skip to content

A game based on the brazilian game show Passa ou Repassa written for the discipline of Redes de Computadores.

License

Notifications You must be signed in to change notification settings

veigaribo/pass-or-repass

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pass or Repass

Professor:

You guys have to implement a game like the game show Passa ou Repassa using the socket API in basically any language where it exists.

Me:

Hm what if I write it in C with some kind of event loop that consumes the events with multiple threads from a thread pool?

🙂

The code originally was very bad, I have since rewritten it.

It however most certainly still contains many race conditions and probably a few leaks, in addition to the questionable design choices, but my mental health comes first.

To compile the server, run the default make rule, optionally with the DEBUG option:

$ make DEBUG=1

Or use the provided Containerfile using your favourite container image build tool.

The server is built to run on Linux exclusively, since it relies on epoll. But besides that, libc and pthreads support, which should all be available from a clean OS install, there are no dependencies.

The resulting por executable will start the server on port 10000, IPv4 address 0.0.0.0, using TCP. If it was not built with DEBUG, it will be quiet -- that's normal.

To connect and interact with it, use the client written in Python:

$ python3 client/main.py

By default it will connect to localhost on port 10000, but you can change those via flags. Try $ python3 client/main.py --help.

No dependencies there either, besides a recent version of Python (>=3.10 I think) and its standard library.

About

A game based on the brazilian game show Passa ou Repassa written for the discipline of Redes de Computadores.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages