Skip to content

TCP over UDP network protocol and tic-tac-toe online game

Notifications You must be signed in to change notification settings

ditramadia/tcp-over-udp-protocols

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Logo

RISMA

Tugas Besar 1
IF3130 Jaringan Komputer

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Author


About The Project

Tubes 1 Jaringan Komputer (IF3130). Sistem program server-client.

Features

  • UDP Protocol
  • Three way handshake
  • Checksum
  • File transfer (any extension)
  • ARQ Go-Back-N Mechanism
  • Unreliable connection handling mechanism (Segment loss, Bit loss, etc)
  • Peer to peer [Bonus]
  • Parallel mode [Bonus]
  • End to End [Bonus]
  • Tic Tac Toe [Bonus]

Built With

  • Python

Project Structure

.
├─── .gitignore
├─── client.py
├─── penerima.py
├─── pengirim.py
├─── README.md
├─── server.py
├─── input
│    ├── TC2.rar
│    ├── TC4.rar
│    └── tes.pdf
├─── lib
│    ├── connection.py
│    ├── messageInfo.py
│    ├── segment.py
│    └── utils
│        ├── Colors.py
│        └── logger.py
└─── tictactoe
     ├── player.py
     ├── tictactoe.py
     └── lib
         ├── Board.py
         ├── Client.py
         ├── Connection.py
         ├── Display.py
         ├── Evaluator.py
         ├── GameClient.py
         ├── GameServer.py
         ├── MessageInfo.py
         ├── Player.py
         ├── Segment.py
         └── Server.py


Getting Started

Prerequisites

  • Python 3.10+

Installation

  1. Clone the repo
    git clone https://github.com/Sister20/tugas-besar-if3130-jaringan-komputer-risma.git


Usage

Starting the server

  1. Go to the repository root folder tugas-besar-if3130-jaringan-komputer-risma
    cd tugas-besar-if3130-jaringan-komputer-risma
  2. Run the server server.py
    python server.py <server_port> <input_file>
  3. Choose whether to enable parallel mode or not
    Enable parallel? (y/n) y
    
    [•] Server running on port 12345
    
    [•] Starting server in parallel mode...

Starting the client

  1. Go to the repository root folder tugas-besar-if3130-jaringan-komputer-risma
    cd tugas-besar-if3130-jaringan-komputer-risma
  2. Run the client client.py
    python server.py <client_port> <server_port> <output_file>
  3. Run another client with different port if necessary
    python server.py <another_client_port> <server_port> <another_output_file>

Starting using main.py

  1. Go to the repository root folder tugas-besar-if3130-jaringan-komputer-risma
    cd tugas-besar-if3130-jaringan-komputer-risma
  2. Run the main program main.py
    python main.py

Tic Tac Toe

  1. Go to the tictactoe folder tugas-besar-if3130-jaringan-komputer-risma/tictactoe
    cd tugas-besar-if3130-jaringan-komputer-risma/tictactoe
  2. Run the server server.py
    python tictactoe.py <server_port>
  3. Run player 1 as client player.py
    python player.py <client_port_1> <server_port>
  4. Run player 2 as client player.py
    python player.py <client_port_2> <server_port>


Authors

NIM Name
13521005 Kelvin Rayhan Alkarim
13521019 Ditra Rizqa Amadia
13521021 Bernardus Willson

Releases

No releases published

Packages

No packages published

Languages