go언어로 TCP server와 GUI client를 만들어 보기.
By SeukWon Kang
3000라인 이상을 공용 package로 분리해 내고도 goguelike에 남은 코드가 아직도 9000라인이 넘기 때문에
TCP server 와 GUI client로 사용할만한 예제를 따로 만들었습니다.
결과적으로는 http://kasw.blogspot.kr/2015/02/go-tcp-serverclient.html http://kasw.blogspot.kr/2015/02/go-gui.html 을 합치는 프로그램을 만드는 것이됩니다.
원래 계획으로는 framework으로 만들어 볼 생각이 있었는데 생각보다 framework과 custom logic의 분리가 까다로운 관계로 그냥 server와 client의 예제가 되었습니다.
코드는 새로 작성된 것이지만 전체 적인 구조와 작동은 goguelike와 거의 같은 형태입니다.
( 적당히 단순화 되긴 했지만 )
예제가 하는 일은 ( logic을 가능한 단순한것으로 선택했습니다. )
서버는 다중 client의 접속을 관장하고 각 client에게 현재 시간! 을 전송합니다.
클라이언트는 서버로 부터 받은 시간을 sdlgui package를 사용해서 analogue clock 형태로 표시 합니다.
결과적으로는 현재 까지 공개한 패키지들의 종합적인 사용예제가 되었습니다.
server / client 가 각각 단일 소스에다가 각 200라인이 되지 않는 비교적 간단한 코드니 읽고 적용하기에도 큰 어려움이 없을것으로 생각합니다.
( 일부러 여러 파일로 분리하지 않았습니다. )
github 위치는
https://github.com/kasworld/sdlclient
입니다.