Linux (CentOS)에 Homebrew on Linux (Linuxbrew)를 설치하기 전에 출처: https://qiita.com/libra_lt/items/548fcbdfbcf992cba4ed CentOS Linux release 7.6.1810 (Core) Linuxbrew는 다음 특징을 가진 패키지 관리 도구이다. root가 아닌 사용자의 home에 설치하는 것이 가능하다. sudo가 필요 없다. 호스트 배포판에 패키지 되지 않은 소프트웨어를 설치할 수...
더 읽기
설치 Linux Boost 라이브러리 공식 사이트에서 다운로드 후 압축 풀기 압축을 푼 디렉토리로 이동 후 아래처럼 입력 $ ./bootstrap.sh 생성된 b2를 사용하여 Boost 라이브러리 빌드하기 $ ./b2 toolset=gcc link=static threading=multi address-model=64 빌드가 끝나면 Boost 라이브러리 디렉토리 안의 stage/lib 디렉토리에 빌드...
더 읽기
방 구조의 채팅 서버이다. 패킷 처리는 1개의 스레드만으로 처리한다. (네트워크 IO는 멀티 스레드) 프로젝트 구조는 아래와 같다. 파일 이름을 보면 대충 어떤 일을 맡고 있는지 알 수 있을 것이다 네트워크 관련 처리를 1개의 스레드에서 하기 위해 MainServer에서 바로 처리하지 않고,...
더 읽기
서버가 복수의 port 번호를 사용하는 경우에 대한 예제이다. 서버는 클라이언트 이외에 서버간 통신을 위해 연결 하기도 한다(보통 분산 서버를 만드는 경우이다). 이 프로젝트는 서버 객체를 2개 생성해서 하나는 클라이언트와 연결, 또 하나는 서버와 연결한다. 서버와 클라이언트 연결 포트를 다르게 하면...
더 읽기
EchoServer를 좀 더 고도화 한 것이다. SuperSocketLite 프로젝트를 추가해서 참조하지 않고, SuperSocketLite를 빌드한 dll 파일을 참조한다. 00_superSocketLite_libs 디렉토리에 있는 dll을 추가한다. 또 Nuget으로 System.Configuration.ConfigurationManager을 추가한다 서버 옵션을 프로그램 실행 시 인자로 받는다. dotnet netcoreapp2.2\EchoServerEx.dll --port 32452 --maxConnectionNumber 32 --name EchoServe...
더 읽기
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 버전이 설치된다. 아래 명령어로 설치 후 연결 까지...
더 읽기
가장 간단한 서버이다.
클라이언트가 보낸 것을 그대로 클라이언트에게 보낸다.
간단하게 SuperSocketLite를 애플리케이션에서 어떻게 사용하는지 배울 수 있다.
코드는 Tutorials/EchoServer 디렉토리에 있다.
빌드를 하면 Tutorials/00_server_bins 디렉토리에 관련 파일을 출력한다.
run_EchoServer.bat 배치 파일로 실행한다.
코드 설명
더 읽기
C#에서 가장 유명한 네트워크 라이브러리로 SuperSocket 이라는 것이 있다. 앞으로 여러 번을 나누어서 SuperSocket을 사용하여 게임 서버를 만드는 방법을 설명하려고 한다. SuperSocket 이란? SuperSocket의 코드는 Github에 있다. https://github.com/kerryjiang/SuperSocket 현재는 2.0 버전을 작업 중으로 올해말 정도에 첫 번째 버전이 나올 예정이라고...
더 읽기
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에서 시작...
더 읽기