이름을 보면 언뜻 "와!  엄청난 소켓이구나!!"하는 느낌이 팍 올 겁니다.  하지만, 낚이셨습니다 ㅡ.ㅡ;;  이 소켓 라이브러리의 이름은 "제발 잘 돌아가라!!!"라는 염원에서 시작한 것일 뿐입니다 ^^;


그래도, 5년차에 접어드는 서비스의 핵심(?) 라이브러리이기도 합니다.  현재까지 별 사고 없이 안정적으로 운영되던 소스였으나, 너무 오랫 동안 초기 설계를 간직하고 있는 탓에 서비스의 전체 코드를 다시 작성하고 있습니다.  Super Socket은 그 중 일부분입니다.  서비스에 사용된 소스는 잡스러운 군더더기가 많았기 때문에 처음부터 새로 작성하였으며, 아직 따끈한 상태에서 공개합니다.  (버그가 상당히 잠재.. 음...  최대한 간결한 기능을 갖추도록 노력하였습니다)


이 소켓 라이브러리는 범용적이지는 않기 때문에 다른 분들에게 도움이 되지 않을 수도 있습니다.  장점이라면, 제가 서비스를 유지.보수하는 동안 지속적으로 업데이트 될 것이라는 점입니다.


서비스에 사용 중인 버전은 윈도우, 안드로이드, iOS 세 개의 플랫폼 용이 있으나, 현재는 윈도우용만이 새로 만들어졌습니다.  윈도우 플랫폼에서 테스트가 완료되면 안드로이드, iOS 그리고 맥 순으로 추가 할 예정입니다.  (전체 서비스를 새로 만들고 있기 때문에 시간이 오래 거릴 것입니다)


소켓의 특징이 있는데,

  • 패킷 크기가 2048로 고정되어 있습니다.  이보다 큰 패킷을 조각내서 보내고 받는 쪽에서 합쳐서 사용하고 있습니다.  (상수를 수정해서 변경 할 수는 있습니다)
  • 최대 컨넥션은 4096개입니다.  (상수를 수정해서 변경 할 수는 있습니다)
  • 패킷은 [해더]  [패킷타입]  [데이터] 형태로 주고 받습니다.
  • 해더는 2바이트이며, 상위 4비트는 Direction이라는 개인 용도로 사용하고 있으며, 이는 다른 용도로 사용해도 무방합니다.  나머지 12비트는 데이터의 크기입니다.
  • 레거시 서버 소켓 코드에서는 워커 스래드가 내부에서 동작하였으나, 새로 작성 할 때 싱글 스레드로 변경하였습니다.  패킷이 수신 된 이후에는 외부에서 워커 스래드를 만들어서 사용하고 있습니다.

소스 코드는,


예전에 공개한 화상 강의 오픈 프로젝트를 통해서 사용법을 추가하도록 하겠습니다.  진행 속도는 항상 그래왔듯이 상당히 늦을 것 같습니다. ^^*

'RyuLib > Super Socket' 카테고리의 다른 글

Super Socket - 소켓 라이브러리  (0) 2016.09.22

Posted by 류종택


티스토리 툴바