Coder Social home page Coder Social logo

chat_app's Introduction

Chat app sử dụng giao thức tự thiết kế

  • Mới vào: client gửi LOGIN hoặc REGISTER:

Login

  • Client gửi "LOGIN\n" + "username\n" + "password\n"
  • Server trả về "LOGIN SUCESSFUL\n" hoặc "LOGIN FAILED\n"

Register

  • username không được có dấu ":" hoặc "\n"
  • Client gửi "REGISTER\n" + "username\n" + "password\n"
  • Server trả về "REGISTER SUCCESSFUL\n" hoặc "REGISTER FAILED\n"

Show friend list

  • Login/register xong -> show danh sách bạn bè online đầu offline sau
  • Client gửi "SHOW FRIEND\n"
  • Server gửi "FRIEND STATUS\n" + a + "\n" với a là số lượng bạn + a dòng kết quả friend_name: online\n hoặc friend_name: offline\n

Add friend

  • Client gửi "ADD FRIEND\n" + "username\n", username của người muốn add
  • Server gửi "FRIEND REQUEST\n" + "username\n", username của người gửi friend request
  • Client của người được gửi friend request gửi "FRIEND REQUEST ACCEPTED\n" hoặc "FRIEND REQUEST REJECTED\n" đến server

Choose friend to chat

  • Client1 gửi "CHAT\n" + "username\n" + "port\n"
  • Server tra nếu người này offline gửi lại "CHAT NOT AVAILABLE\n" nếu người này online gửi tới người muốn connect "CHAT REQUEST\n" + "username\n" + "port\n, username của người gửi chat request
  • Client2 của người được gửi friend request gửi "CHAT REQUEST ACCEPTED\n" hoặc "CHAT REQUEST REJECTED\n" đến server
  • Server nếu nhận "CHAT REQUEST REJECTED\n" sẽ gửi cho Client1 "CHAT REJECTED\n", nếu nhận "CHAT REQUEST ACCEPTED\n" sẽ gửi cho cả Client1 và Client2 CHAT INFO\n ip:port:server\n với ip chỉ làm IPv4, server0 hoặc 1 chỉ định client đó sẽ là đóng vai trò server trong kết p2p

Kết nối P2P

  • Gửi tin nhắn "MESSAGE\n" + "len_of_message\n" + "msg". Ví dụ gửi tin nhắn "AAAA" -> "MESSAGE\n" + "4\n" + "AAAA"
  • Gửi file "FILE\n" + "name_of_file\n" + "len_of_file\n" + "data_in_file"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.