All Projects → manfredipist → QTcpSocket

manfredipist / QTcpSocket

Licence: GPL-3.0 license
A simple Qt client-server TCP architecture to transfer data between peers

Programming Languages

C++
36643 projects - #6 most used programming language
QMake
1090 projects

Projects that are alternatives of or similar to QTcpSocket

EasyFileTransfer
An easy way to transfer file with any size on network with tcp protocol.
Stars: ✭ 30 (-51.61%)
Mutual labels:  tcp, tcp-server, tcp-client, tcp-socket
Oksocket
An blocking socket client for Android applications.
Stars: ✭ 2,359 (+3704.84%)
Mutual labels:  tcp, tcp-server, tcp-client, tcp-socket
Packetsender
Network utility for sending / receiving TCP, UDP, SSL
Stars: ✭ 1,349 (+2075.81%)
Mutual labels:  tcp, qt5, tcp-server, tcp-client
tcp server client
A thin and simple C++ TCP client server
Stars: ✭ 124 (+100%)
Mutual labels:  tcp, tcp-server, tcp-client, tcp-socket
Socketify
Raw TCP and UDP Sockets API on Desktop Browsers
Stars: ✭ 67 (+8.06%)
Mutual labels:  tcp, tcp-server, tcp-client, tcp-socket
Easytcp
Simple framework for TCP clients and servers. Focused on performance and usability.
Stars: ✭ 60 (-3.23%)
Mutual labels:  tcp, tcp-server, tcp-client
Tinytcpserver
A small tcp server working under Mono or .NET (4.0) and provides hooks for handling data exchange with clients (works under mono and .net). Behaviour/protocol/reaction could be specified via custom C# script.
Stars: ✭ 14 (-77.42%)
Mutual labels:  tcp, tcp-server, tcp-client
Simpletcp
Simple wrapper for TCP client and server in C# with SSL support
Stars: ✭ 99 (+59.68%)
Mutual labels:  tcp, tcp-server, tcp-client
SuperSimpleTcp
Simple wrapper for TCP client and server in C# with SSL support
Stars: ✭ 263 (+324.19%)
Mutual labels:  tcp, tcp-server, tcp-client
ctsTraffic
ctsTraffic is a highly scalable client/server networking tool giving detailed performance and reliability analytics
Stars: ✭ 125 (+101.61%)
Mutual labels:  tcp, tcp-server, tcp-client
React Native Tcp Socket
React Native TCP socket API for Android, iOS & macOS with client SSL/TLS support
Stars: ✭ 112 (+80.65%)
Mutual labels:  tcp, tcp-server, tcp-client
network
exomia/network is a wrapper library around System.Socket for easy and fast TCP/UDP client & server communication.
Stars: ✭ 18 (-70.97%)
Mutual labels:  tcp, tcp-server, tcp-client
Tacopie
C++ TCP Library - NO LONGER MAINTAINED
Stars: ✭ 359 (+479.03%)
Mutual labels:  tcp, tcp-server, tcp-client
Simplenet
An easy-to-use, event-driven, asynchronous network application framework compiled with Java 11.
Stars: ✭ 164 (+164.52%)
Mutual labels:  tcp, tcp-server, tcp-client
tcp-net
Build tcp applications in a stable and elegant way
Stars: ✭ 42 (-32.26%)
Mutual labels:  tcp, tcp-server, tcp-client
Simpleunitytcp
🖧 Simple Unity Project to show how TCP communication are builded in C# without multi-threading or Unity network (Unet) involved.
Stars: ✭ 22 (-64.52%)
Mutual labels:  tcp, tcp-server, tcp-client
AsyncTcpClient
An asynchronous variant of TcpClient and TcpListener for .NET Standard.
Stars: ✭ 125 (+101.61%)
Mutual labels:  tcp, tcp-server, tcp-client
Hprose Nodejs
Hprose is a cross-language RPC. This project is Hprose 2.0 for Node.js
Stars: ✭ 297 (+379.03%)
Mutual labels:  tcp, tcp-server, tcp-client
Bizsocket
异步socket,对一些业务场景做了支持
Stars: ✭ 469 (+656.45%)
Mutual labels:  tcp, tcp-server, tcp-client
Simpletcp
A minimal non-blocking TCP server written for Python 3.
Stars: ✭ 162 (+161.29%)
Mutual labels:  tcp, tcp-server, tcp-client

QTcpSocket

A simple Qt client-server TCP architecture to transfer data between peers.

Application

The Architecture is made up of 2 projects:

  • QTCPServer
  • QTCPClient

You can instantiate as many QTCPClient as you wish.

Features

  1. Broadcast transferring
  2. Single channel transferring
  3. Media transferring capabilities (*.json, *.txt, *.png, *.jpg, *.jpeg)
  4. Updated to latest slot-signal syntax found in Qt 5.15
  5. Non-redundant design

Protocol

The protocol i've designed to enable data transferring is pretty straightforward, each message sent is made up of:

  • A 128 byte fixed-size header
  • A Non-fixed size data buffer

Protocol schema

The header follows the following structure:

QString header = QString("fileType:%1, fileName:%2, fileSize:%3;")

Where:

  • %1 can be "attachment" or "message";
  • %2 is "null" for messages, the correspondent fileName for attachments sent;
  • %3 is the size of the message or the attachment sent.

Many improvements could have been made during protocol design, one among many, to specify header size in the header and save up some byte during transfers, especially messages ones.

This protocol is meant to be used only for recreative purposes as it isn't compliant at all to the FTP quality standards, that we are used to, nowadays.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].