All Projects → xtaci → Libkcp

xtaci / Libkcp

Licence: mit
FEC enhanced KCP session library for iOS/Android in C++

Programming Languages

c
50402 projects - #5 most used programming language

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.
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].