Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

xtaci/libkcp

Repository files navigation

libkcp

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

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.

About

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

Resources

Readme

License

MIT license

Stars

Watchers

Forks

Packages

Contributors

Languages