Skip to content
forked from xtaci/libkcp

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

License

Notifications You must be signed in to change notification settings

AllenShen/libkcp

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

libkcp

[![Powered][1]][2] [![Build Status][3]][4] [1]: https://img.shields.io/badge/KCP-Powered-blue.svg [2]: https://github.com/skywind3000/kcp [3]: https://travis-ci.org/xtaci/libkcp.svg?branch=master [4]: https://travis-ci.org/xtaci/libkcp FEC enhanced KCP client session library for iOS/Android, compatible with kcp-go.

libkcp

Features

  1. Optimized for Real-Time Strategy Game.
  2. Stream based interface, you can easily switch from your TCP based protocol to libkcp or dualstack.

Usage

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

GameInit()
NetworkInit()
While(not gameover) Do      // e.g:  A 30FPS Game
       Network.Read()
       Network.Write()
       Network.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 implemented yet.

Troubleshooting

  1. C++11 is required for compiling.

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 90.8%
  • C++ 9.0%
  • Other 0.2%