Skip to content

Latest commit

 

History

History
48 lines (39 loc) · 1.57 KB

README.md

File metadata and controls

48 lines (39 loc) · 1.57 KB

libkcp

Powered Build Status

FEC enhanced KCP client session library for iOS/Android, compatible with kcp-go.

libkcp

Features

  1. Optimized for Online Games.
  2. Stream based interface, you can easily switch from your TCP based protocol to libkcp or dualstack.
  3. FEC(Forward Error Correction) Support with Reed-Solomon Codes

Usage

libkcp has been designed as a Frame-Driven library, the main loop was supposed as:

GameInit()
NetworkInit()
While (!isGameOver) Do      // e.g:  A 30FPS Game
       LibKCP.Read()
       LibKCP.Write()
       LibKCP.Update()
       Game.Logic()
       Game.Render()
       Wait(33ms)   // clock
End

The Read/Write/Update functions of libkcp are guaranteed to be non-blocking.
Please read kcp_test.cpp fec_test.cpp for library usage.

Demo

start echo server(golang)

$go get github.com/xtaci/kcp-go
$go run kcpserver.go

compile and run libkcp(Best with CLion), and watch output.

Caveats

  1. Packet level encryption has not been implemented yet.

Troubleshooting

  1. C++11 is required for compiling.