# Zero
C++ and C# network server library
# Build
Need VisualStudio 2012, 2013, 2015
# Description
특징 : 서버 제작시 필요한 기본적인 기능들부터 구현하기 까다로운 복잡한 기능들 이를 테면 연결관리부터 대규모 접속이 가능한 분산서버 기능까지 자체 내장하고 있어 사용법을 익히는 것만으로 실시간 서버를 빠르고 간단하게 제작할 수 있습니다.
개발 동기
프라우드넷을 회사에서 약 2년간 사용하다가 이직한 것이 계기가 되었습니다
사용하던 기능들을 계속 사용하고는 싶은데(예를들면 RMI같은 것들) 개인적으로 구매하기엔 너무 고가이기도 하고 새로운 회사에서는 엔진 구매할 의사가 없음을 확인하고 그렇다면 한번 직접 만들어 보자고 생각하여 무작정 개발을 시작하였습니다
그렇게 갑자기 개발 시작한 것이 십 수년간 여러 서버들을 개발하고 상용화한 경험을 통해 짧은 시간에 생각보다 만족스러운 결과를 낼 수 있었습니다
사실 처음부터 네트워크 엔진을 개발하려면 노하우는 물론 많은 시간이 필요한 것이 현실입니다
게다가 쓸만한 엔진들은 비용은 물론 라이센스 문제로 복잡하며 평가판 등은 기능제한이 걸려 있어 사용하기 쉽지 않습니다
따라서 개인적 용도로 개발하였으나 쉽게 서버 제작을 원하는 누구나 사용할 수 있도록 공개하기로 결정하였습니다.
윈도우용 C++서버와 C#서버를 매우 간단히 제작할 수 있으며 클라이언트의 경우엔 현재 윈도우용 C++과 C#을 지원하고 추가로 기타 멀티플렛폼을 위한 Net3.5용 라이브러리와 Unity용 Package도 내장하고 있어 모바일에서도 즉시 사용할 수 있습니다
다만 무료인 만큼 본 라이브러리 사용시 발생하는 모든 문제나 책임은 당연히 사용자 본인에게 있으므로 만약 상용 프로젝트에 사용시 예제와 기능들을 충분히 검토하신후 신중히 사용하시기 바랍니다
(이 라이브러리를 사용하여 진행중인 개인 프로젝트가 있는 만큼 업데이트는 지속적으로 이루어질 계획입니다)
간략히 요약하면 무료 라이브러리이지만 상용 엔진 수준의 기능들과 그 외 여러 편리한 기능들을 내장하고 있습니다. 이를 테면..
서버 입장/퇴장 같은 기본적이지만 까다로운 기능의 단순화 처리 부터, 모바일 및 장애시의 연결복구 같은 편리한 기능들, 복잡하고 구현하기 어려운 서버간의 유저 이동처리와 동기화 기능을 내장하여 대규모 동접을 받을 수 있는 안정적인 분산 서버까지 쉽게 제작할 수 있습니다
여러 기능과 사용법은 예제 프로그램을 통해 확인할 수 있습니다
예제는 현재 아래와 같이 구성되어 있습니다
- Echo.sln : 가장 기본적인 에코 서버 샘플
- Sample.sln : 연결장애나 모바일용 연결복구, SQL 및 비동기 쿼리 사용법(C++용 SampleServer)
- ServerP2P.sln : 서버간 통신 자동화, 분산 서버 구축(서버간 로드벨런싱 + 서버이동 자동화 + 유저 데이터 자동 동기화 처리)
- Udp.sln : 서버/클라에서 udp포트를 설정하는 방법과 패킷 송수신시 udp를 쉽게 주고 받는 방법을 보여줍니다
- Group.sln : 그룹을 관리하는 방법(생성/합류/탈퇴/파괴/그룹메세지)을 보여줍니다
- CasualServer.sln : 캐쥬얼 서버 샘플 (로그인/로비/룸 서버로 이루어진 서버에서 간단히 방 만들기와 입장하는 방법을 보여줍니다, 추가로 룸서버와 로비서버간에 매우 간단히 통신하는 방법과 유저 데이터가 동기화 되고 룸이 분산 관리되는 방법들을 보여줍니다)
- Sample2/Sample2.sln : C#의 Async/Await을 활용하여 멀티스레드 동기화 문제나 콜백지옥이 없는 서버를 간단히 제작하는 방법을 보여줍니다
참고하거나 관련 코드를 직접 수정하여 사용한 라이브러리 목록은 아래와 같습니다
- ADO 라이브러리 C++ (네이버까페 온라인서버제작모임 무모님제작)
- FreeNet (게임코디 태풍의그라운드님 제작) C#
# Function
현재 지원환경 : VS 2012필요 (2013, 2015용 lib별도 포함)
- C++ 서버(w32/x64)
- C# 서버(w32/x64)
- C++ 클라이언트(w32/x64)
- C# 클라이언트(w32/x64)
- C# 클라이언트(멀티플렛폼용 .Net 3.5이상)
- Unity (Window, Mac, IOS, Android)
패킷관련 기능
- 기본처리 : 단순 직렬화
- 압축처리
- 암호화 : 자체알고리즘/AES/RSA
- RMI 기능
- 클래스 Serialize 자동화 (사용자 실수 방지)
- Loopback 기능 (커넥션별 스레드 순서보장)
- TCP 및 UDP옵션 (자동 홀펀칭, 패킷 순서 보장, 스레드 순서보장, Relay지원)
서버 접속 관련부분 자동화
- 클라이언트에서 서버에 입장/퇴장 2가지 요청만으로 접속관련 과정 단순화 (내부적으로 복잡한 부분과 예외상황을 자동처리)
-> 연결/연결실패, 연결인증과정, 연결복구, 연결종료/강제종료 등 접속과 관련된 모든 과정을 자동으로 처리
클라이언트의 비정상적인 종료와 동접 한계시 접속시도와 같은 예외상황까지 자동 처리
그룹 통신 기능 내장
- 그룹 생성/가입/탈퇴/파괴 명령 제공
- 그룹 통신 메세지 기능
유저 네트워크 장애/전환 자동복구 기능
- 일시적 네트워크 장애나 모바일 네트워크 전환시(3G/WIFI) 자동 복구를 위한 즉시복구 함수 내장
: 모바일 연결 전환 감지는 현재 기기별로 직접 감지한후 복구 함수를 호출 해야합니다(IOS경우 Reachability로 감지가능)
(여러 모바일 기기를 구입하여 감지까지 완전 자동화 하고 싶었으나 금전 문제로..)
- 장애 시간 동안에 손실된 모든 패킷들을 자동으로 복원해줍니다
- 빠른 복구 기능 : 자동 복구 기능외에 추가로 즉시복구 함수제공, 서버측 끊김 감지 이전에도 즉시복원(0.5초 이내)
- 다양한 복구 옵션 (연결 복구 최대 제한시간 조정 및 여러 복구실패 정책 옵션)
분산서버 기능
- 서버간 연결과 통신기능 자동화
- 서버 이동 자동화 : 서버간 자동 로드벨런싱, 유저데이터 동기화 기능 내장, 인증키 자동 관리
멀티코어 활용
- 모든 실행 부분에 멀티스레드 적용
- 멀티스레드 실행시 모든 커넥션에 대해 독립적인 스레드에서만 실행됨을 보장함 (스레드 동기화 문제 해방)
- 모든 커넥션과 이벤트에 대해 자동으로 스레드 로드 밸런싱 처리 (스레드 순서 보장됨)
- 쉬운 멀티 프로세스 적용 : 서버간 통신 + 로드벨런싱 기능 활용
- 싱글 스레드 모델 지원 : 로직뿐만 아니라 이벤트, 비동기결과, 서버간 통신결과 처리까지 완벽한 싱글스레드 실행을 보장
비중복 스레드 실행이 보장되는 비동기 함수 내장
- 멀티스레드 활용과 동시에 해당 기능을 사용하면 스레드 동기화 문제 없이 고성능 서버를 쉽게 제작 가능합니다
- 비동기 요청과 결과처리를 자동화
- 비동기 요청시 특정 커넥션을 지정시 결과 실행 시점의 스레드 실행에 대한 비중복실행을 동기화 객체 없이 보장해줌
-> SQL Query, SP 비동기 실행 함수 내장
-> 사용자 정의 비동기 요청 처리
没有合适的资源?快使用搜索试试~ 我知道了~
c++/c# network server library
共458个文件
cs:127个
h:53个
config:47个
0 下载量 69 浏览量
2024-04-08
22:32:56
上传
评论 1
收藏 76.52MB ZIP 举报
温馨提示
该网络引擎是一款功能全面且易于使用的服务器开发工具,它从基础功能到复杂特性如分布式服务器和大规模连接管理等都内置支持,使得用户只需掌握其使用方式便能快速简便地构建实时服务器。 开发者因个人对之前工作中使用的网络服务功能的需求,以及市场上现有解决方案成本高昂、许可证复杂且功能受限,决定自行开发。经过多年服务器开发和商用经验,该引擎在短时间内取得了令人满意的成果。 该引擎支持轻松创建Windows平台的C++和C#服务器,并提供多平台支持,包括Net3.5和Unity包,使得移动端也能立即使用。虽然免费,但内置了商业级引擎的功能和便利特性,如简化的基本操作、移动和障碍恢复连接、用户间移动和同步处理等,有助于构建稳定的分布式服务器。 提供多个示例程序以展示不同功能,包括基础Echo服务器、连接恢复、异步数据库操作、服务器间通信自动化、UDP端口设置、群组管理以及休闲游戏服务器样本等。同时,建议在商业项目中使用前仔细审查示例和功能。 参考和修改的库包括ADO库C++(由韩国Naver Cafe的Mumo提供)和FreeNet(由游戏编码的Taepung地面网络的Ground先生制作)。
资源推荐
资源详情
资源评论
收起资源包目录
c++/c# network server library (458个子文件)
AnnotationManager 4KB
and_echo.apk 18.53MB
DefaultWsdlHelpGenerator.aspx 59KB
DefaultWsdlHelpGenerator.aspx 57KB
ProjectSettings.asset 44KB
ProjectSettings.asset 44KB
InputManager.asset 5KB
QualitySettings.asset 5KB
NavMeshAreas.asset 4KB
GraphicsSettings.asset 4KB
EditorUserBuildSettings.asset 4KB
Physics2DSettings.asset 4KB
DynamicsManager.asset 4KB
TagManager.asset 4KB
EditorSettings.asset 4KB
EditorUserSettings.asset 4KB
AudioManager.asset 4KB
BuildSettings.asset 4KB
UnityAdsSettings.asset 4KB
UnityConnectSettings.asset 4KB
TimeManager.asset 4KB
NetworkManager.asset 4KB
ClusterInputManager.asset 4KB
EditorBuildSettings.asset 4KB
InspectorExpandedItems.asset 4KB
MonoManager.asset 4KB
AssetImportState 17B
sharedassets0.assets 10KB
AssetServerCacheV3 5KB
MakeIDL.bat 143B
MakeIDL.bat 117B
MakeIDL.bat 109B
MakeIDL.bat 90B
MakeIDL.bat 84B
MakeIDL.bat 78B
DeleteIDL.bat 67B
DeleteIDL.bat 61B
Compat.browser 2KB
machine.config 27KB
machine.config 17KB
web.config 11KB
config 2KB
packages.config 371B
App.config 184B
App.config 184B
App.config 184B
App.config 184B
App.config 184B
App.config 184B
App.config 184B
App.config 184B
App.config 184B
App.config 182B
App.config 182B
App.config 182B
App.config 182B
App.config 182B
app.config 141B
app.config 141B
app.config 141B
app.config 141B
app.config 141B
app.config 141B
app.config 141B
packages.config 133B
packages.config 132B
packages.config 132B
packages.config 131B
packages.config 131B
packages.config 131B
packages.config 131B
packages.config 131B
packages.config 131B
packages.config 131B
packages.config 131B
packages.config 131B
packages.config 130B
packages.config 130B
packages.config 130B
packages.config 130B
packages.config 130B
packages.config 130B
packages.config 130B
packages.config 130B
packages.config 129B
SampleServer.cpp 10KB
SampleClient.cpp 4KB
EchoServer.cpp 2KB
EchoClient.cpp 2KB
stdafx.cpp 260B
stdafx.cpp 260B
stdafx.cpp 260B
stdafx.cpp 258B
stdafx.cpp 258B
stdafx.cpp 258B
Program.cs 14KB
Program.cs 14KB
Program.cs 12KB
Program.cs 12KB
Program.cs 10KB
共 458 条
- 1
- 2
- 3
- 4
- 5
资源评论
工匠若水
- 粉丝: 7916
- 资源: 48
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功