minghust / mingssager

An IM software, based on winsock and Qt network

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

mingssager

Requirements

Implement an instant messaging software based on TCP and UDP:

  1. Include both server-side and client-side;
  2. Support user registration, login, and password retrieval (based on TCP);
  3. If two users are online at the same time, use p2p to communicate without being transited by the server (based on TCP);
  4. Support p2p reliable file transfer (base on UDP);
  5. The data stored on the server are strongly encrypted;
  6. Support at least two groups of users to communicate and transfer files online at the same time;
  7. File transfer shows good performance with full use of network bandwidth;
  8. User-friendly GUI.

Implement

based on Qt and winsock, almost use one month to finish this huge software

  • Environment : Windows 10
  • Qt : qt 5.9

Features

  • server
    • winsock
    • I/O multiplexing: select
    • file Information
  • client
    • QTcpSocket
    • QUdpSocket
    • QTcpServer

Methods for reliable file transmission(based on UDP)

  • Timeout
  • md5
  • GBN
  • Qt signal and slot

About

An IM software, based on winsock and Qt network

License:MIT License


Languages

Language:C++ 97.7%Language:QMake 2.3%