Un petit client/serveur TCP pour transférer d'image en C

Overview

MIMAGE Project

Guide de démarage

Prérequis

Être sur un environement Linux et avoir le compilateur GCC et makefile d'installé.

Installation

Pour build et lancer le projet, il faut faire les commande suivante :

$ make
$ ./bin/mimage

Pour build et lancer les tests unitaire, il faut faire les commande suivante :

$ make test
$ ./bin/run_tests
Issues
  • Mettre en place la récupéreration d'un fichier du server (client/server)

    Mettre en place la récupéreration d'un fichier du server (client/server)

    Pour récupérer un fichier du server. Le client envoie un message de type GET_FILE_DATA au serveur. Le serveur répond alors par un message de type DOWNLOAD_FILE_DATA envoyer le fichier.

    Client                  Serveur
       |     GET_FILE_DATA     |
       |---------------------->|
       |   DOWNLOAD_FILE_DATA  |
       |<----------------------|
    
    enhancement 
    opened by mrsolarius 0
  • Mise en place de la récupération d'un fichier sur le serveur (Serveur/Client)

    Mise en place de la récupération d'un fichier sur le serveur (Serveur/Client)

    Pour récupérer un fichier du server. Le client envoie un message de type GET_FILE_DATA au serveur. Le serveur répond alors par un message de type DOWNLOAD_FILE_DATA envoyer le fichier.

    Client                  Serveur
       |     GET_FILE_DATA     |
       |---------------------->|
       |   DOWNLOAD_FILE_DATA  |
       |<----------------------|
    
    enhancement 
    opened by mrsolarius 0
  • Mise en place du dépôt d'un fichier sur le serveur

    Mise en place du dépôt d'un fichier sur le serveur

    Pour déposer un fichier sur le serveur. Le client envoie un message de type UPLOAD_FILE_INFO au serveur. Le serveur répond alors par un message de type ACQUIT_FILE_INFO pour confirmer ou annuler le dépôt. Si le serveur accepte le dépôt, le client envoie alors le fichier dans un message de type UPLOAD_FILE_DATA. Le serveur répond alors par un message de type ACQUIT_FILE_DATA pour confirmer ou annuler le dépôt.

    Client                  Serveur
       |    UPLOAD_FILE_INFO   |
       |---------------------->|
       |    ACQUIT_FILE_INFO   |
       |<----------------------|
       |    UPLOAD_FILE_DATA   |
       |---------------------->|
       |    ACQUIT_FILE_DATA   |
       |<----------------------|
    
    enhancement 
    opened by mrsolarius 0
  • Mise en place de la consultation des fichiers (client/server)

    Mise en place de la consultation des fichiers (client/server)

    Pour consulté la listes des fichiers disponibles. Le client commance par envoyer un message de type GET_LIST au serveur. Le server répond avec un message de type LIST_SIZE contenant le nombre de trame de fichier à récupérer. Il poursuit ensuite par l'envoie d'autant de messages de type DOWNLOAD_FILE_INFO qu'indiquer dans le message LIST_SIZE.

    Client                  Serveur
       |         GET_LIST      |
       |---------------------->|
       |      LIST_SIZE        |
       |<----------------------|
       |   DOWNLOAD_FILE_INFO  |
       |<----------------------|
       |          .            |
       |          .            |
       |          .            |
       |   DOWNLOAD_FILE_INFO  |
       |<----------------------|
    
    enhancement 
    opened by mrsolarius 0
  • Mettre en place le CLOSE_SOCKET (server/client)

    Mettre en place le CLOSE_SOCKET (server/client)

    Pour informer le serveur d'une deconexion. Le client envoie un message de type CLOSE_SOCKET au serveur dans une trame INFOS_FRAME. Le serveur fermer alors le processus de communication.

    Client                  Serveur
       |      CLOSE_SOCKET     |
       |---------------------->|
       |                       X
       |
    
    enhancement 
    opened by mrsolarius 0
Owner
MrSolarius
Student at L3 MIAGE of Grenoble
MrSolarius
an easy implementation of a multi-process tcp server and a multi-thread tcp client

一个TCP多进程服务器-多线程客户端的简单实现。 客户端类似Apache ab的测试功能,能够通过向某一个ip端口发送指定并发量和总数量的tcp短连接;服务端处理tcp短连接,每来一条消息就打印一条log。 使用cmake编译,建议在vscode里编译,或者命令行 # 终端进入目录 mkdir bu

adin 1 Nov 28, 2021
Ultra fast and low latency asynchronous socket server & client C++ library with support TCP, SSL, UDP, HTTP, HTTPS, WebSocket protocols and 10K connections problem solution

CppServer Ultra fast and low latency asynchronous socket server & client C++ library with support TCP, SSL, UDP, HTTP, HTTPS, WebSocket protocols and

Ivan Shynkarenka 848 Jun 26, 2022
Built a client-server application using TCP and UDP sockets, in which the clients can subscribe/unsubscribe to various topics.

Built a client-server application using TCP and UDP sockets, in which the clients can subscribe/unsubscribe to various topics.

null 1 Jun 22, 2022
Simple Tcp Chat Client / Server written in C++

What this TcpXat TcpXat Is A Simple Tcp Chat Setup TcpXat sudo apt install make;make client;make serv;echo "done by FuryM3m0ry"; How To Run TcpXat Ter

sami 1 Dec 28, 2021
C and C++ client for QuestDB Input Line Protocol over TCP

c-questdb-client QuestDB - InfluxDB Line Protocol - Ingestion Client Library for C and C++ This library makes it easy to insert data into QuestDB. Thi

QuestDB 13 Jun 2, 2022
Triton Python and C++ client libraries and example, and client examples for go, java and scala.

Triton Client Libraries and Examples To simplify communication with Triton, the Triton project provides several client libraries and examples of how t

Triton Inference Server 141 Jun 24, 2022
VEngine-Client - vEngine: Official Client Module

━ S Y N O P S I S ━ Maintainer(s): Aviril, Tron vEngine is Next-Gen Sandbox-Engine being crafted in C++. In contrast to UE/Unity/ReverseEngineered-Mod

ᴠ : ꜱᴛᴜᴅɪᴏ 13 Apr 13, 2022
Pyth-client - client API for on-chain pyth programs

pyth-client client API for on-chain pyth programs Build Instructions # depends on openssl apt install libssl-dev # depends on libz apt install zlib1g

Pyth Network 99 Jun 24, 2022
Webdav-client-cpp - C++ WebDAV Client provides easy and convenient to work with WebDAV-servers.

WebDAV Client Package WebDAV Client provides easy and convenient to work with WebDAV-servers: Yandex.Disk Dropbox Google Drive Box 4shared ownCloud ..

Cloud Polis 100 Apr 13, 2022
This repository provides a C++ client SDK for Unleash that meets the Unleash Client Specifications.

Unleash Client SDK for C++ This repository provides a C++ client SDK for Unleash that meets the Unleash Client Specifications. Features The below tabl

Antonio Ruiz 4 Jan 30, 2022
A modern C++ network library for developing high performance network services in TCP/UDP/HTTP protocols.

evpp Introduction 中文说明 evpp is a modern C++ network library for developing high performance network services using TCP/UDP/HTTP protocols. evpp provid

Qihoo 360 3k Jun 27, 2022
Mongoose Embedded Web Server Library - a multi-protocol embedded networking library with TCP/UDP, HTTP, WebSocket, MQTT built-in protocols, async DNS resolver, and non-blocking API.

Mongoose - Embedded Web Server / Embedded Networking Library Mongoose is a networking library for C/C++. It implements event-driven non-blocking APIs

Cesanta Software 8.5k Jun 29, 2022
mTCP: A Highly Scalable User-level TCP Stack for Multicore Systems

README mTCP is a highly scalable user-level TCP stack for multicore systems. mTCP source code is distributed under the Modified BSD License. For more

null 1.8k Jun 22, 2022
Warp speed Data Transfer (WDT) is an embeddedable library (and command line tool) aiming to transfer data between 2 systems as fast as possible over multiple TCP paths.

WDT Warp speed Data Transfer Design philosophy/Overview Goal: Lowest possible total transfer time - to be only hardware limited (disc or network bandw

Facebook 2.7k Jun 27, 2022
FreeModbus is a Modbus ASCII/RTU and Modbus TCP implementation for embedded systems

FreeModbus is a Modbus ASCII/RTU and Modbus TCP implementation for embedded systems. It provides an implementation of the Modbus Application Protocol

Mahmood Hosseini 17 Apr 7, 2022
High performant TCP server for rtl-sdr

About Key features Share available RF bandwidth between several independent clients: Total bandwidth can be 2016000 samples/sec at 436,600,000 hz One

dernasherbrezon 110 Jun 17, 2022
A simple tcp tunnel on c using sockets Right now it only supports linux systems

A simple tcp tunnel on c using sockets Right now it only supports linux systems build BY MAKE mkdir build make cd build ./tunnel.o <localport> <rem

notaweeb 8 Sep 20, 2021
TCP tunnel powered by epoll

Feature Dual Stack Async DNS Non-blocking IO Zero Copy Build git clone https://github.com/zephyrchien/ZTUN cd ZTUN mkdir build && cd build cmake .. ma

zephyr 15 Jun 3, 2022
A simple tcp/ip stack

pip A simple TCP/IP stack, just like lwIP, but pip focus only parse IP Packet and output IP Packet, basically realize no memory copy 一个简单的TCP/IP协议栈实现,

plumk 25 Apr 15, 2022