C# - SuperSocketLite으로 게임 서버 만들기 - 04 MultiPortServer

서버가 복수의 port 번호를 사용하는 경우에 대한 예제이다. 서버는 클라이언트 이외에 서버간 통신을 위해 연결 하기도 한다(보통 분산 서버를 만드는 경우이다). 이 프로젝트는 서버 객체를 2개 생성해서 하나는 클라이언트와 연결, 또 하나는 서버와 연결한다. 서버와 클라이언트 연결 포트를 다르게 하면...
더 읽기

C# - SuperSocketLite으로 게임 서버 만들기 - 03) 에코 서버 2

EchoServer를 좀 더 고도화 한 것이다. SuperSocketLite 프로젝트를 추가해서 참조하지 않고, SuperSocketLite를 빌드한 dll 파일을 참조한다. 00_superSocketLite_libs 디렉토리에 있는 dll을 추가한다. 또 Nuget으로 System.Configuration.ConfigurationManager을 추가한다 서버 옵션을 프로그램 실행 시 인자로 받는다. dotnet netcoreapp2.2\EchoServerEx.dll --port 32452 --maxConnectionNumber 32 --name EchoServe...
더 읽기

Ubuntu에 gcc 8, clang 6 설치하기

gcc 8 (Ubuntu 17.04) PPA로 최신 버전 설치 sudo add-apt-repository ppa:jonathonf/gcc-8.0 sudo apt update sudo apt install gcc-8 g++-8 LLVM 설치 Ubuntu 18.04 apt-get install llvm 6.0 버전이 설치된다. Clnag 설치 6.0 버전이 설치된다. 아래 명령어로 설치 후 연결 까지...
더 읽기

C# - SuperSocketLite으로 게임 서버 만들기 - 02) 에코 서버

가장 간단한 서버이다. 클라이언트가 보낸 것을 그대로 클라이언트에게 보낸다. 간단하게 SuperSocketLite를 애플리케이션에서 어떻게 사용하는지 배울 수 있다. 코드는 Tutorials/EchoServer 디렉토리에 있다. 빌드를 하면 Tutorials/00_server_bins 디렉토리에 관련 파일을 출력한다. run_EchoServer.bat 배치 파일로 실행한다. 코드 설명
더 읽기

C# - SuperSocketLite으로 게임 서버 만들기 - 01

C#에서 가장 유명한 네트워크 라이브러리로 SuperSocket 이라는 것이 있다. 앞으로 여러 번을 나누어서 SuperSocket을 사용하여 게임 서버를 만드는 방법을 설명하려고 한다. SuperSocket 이란? SuperSocket의 코드는 Github에 있다. https://github.com/kerryjiang/SuperSocket 현재는 2.0 버전을 작업 중으로 올해말 정도에 첫 번째 버전이 나올 예정이라고...
더 읽기

C++ - Windows 텍스트 인코딩 변환

Ansi <-> UTF-8 std::string CGlobal::ToUFT8( const char* pszIn ) { std::string resultString; int nLenOfUni = 0, nLenOfUTF = 0; wchar_t* us = NULL; char* pszOut = NULL; if ( ( nLenOfUni = MultiByteToWideChar( CP_ACP, 0, pszIn, strlen(pszIn), NULL, 0)) <=...
더 읽기

참, 거짓을 반환 하는 함수의 네이밍

참 거짓 값(Boolean, bool)을 반환하는 함수는 is로 시작하는 것이 일반적이라고 생각한다. 적어도 C++ 에서는… 그러나 영어적으로 is 시작이 어려운 경우도 있다. is로 시작할 수 없는 함수 이름의 명명 방식을 생각해 봤다. 존재 하는가? 가장 하기 쉬운 실패가 “존재할까?”를 is에서 시작...
더 읽기

좋은 함수 이름을 짓기 위한 참고 정보

참 거짓을 돌려주는 메소드 장소 단어 의미 예 Prefix is (오브제그트가)대기 하는 상태가 되어 있나? isChecked Prefix can (오브제그트가)기대하는 동작을 할 수 있나? canRemove Prefix should (호출 측이)어떤 명령을 실행한쪽이 좋나 shouldMigrate Prefix has (오브제그트가)기대하는 데이터 프로퍼티를 가지고 있나? hasObservers...
더 읽기

좋은 클래스 이름을 짓기 위한 참고 정보

데이터 소스를 취급하는 레이어 이름 보충 예 Client HttpClient 등 Server-Client 의미로 사용하는 TwitterApiClient, QiitaApiClient Gateway API를 요청하기 위한 게이트 웨이로서 TwitterTimelineGateway, QiitaAccountGateway Store, Storage, Registry DB를 요청하거나 Disk I/O에 의한 데이터 영속화를 하는 부분에 이용 FavoriteSettingStore, DataStorage, ConfigRegistry Cache...
더 읽기

이름 붙이기

메소드 이름은 동사로 시작한다 동사 이름 한글 표현 주된 반환 값 Get 취득하다 객체 Set 설정하다 void Update 갱신하다 void(update한 건수 돌려줄 경우도) Delete 삭제하다 void(delete한 건수 돌려줄 경우도) Insert 삽입하다 void Select 선택하다 객체 Find 선택하다 객체 Add 추가하다...
더 읽기