IOCP 관련 확장 함수 사용 준비

오랜된 Windows(아마 Windows Vista 이전)에서는 Winsock 확장 함수를 사용하기 위해서는 확장 함수의 함수 포인터를 가져와야 사용할 수 있었다. 예를들면 AcceptEx의 경우는 아래처럼 해야 사용할 수 있었다. static LPFN_ACCEPTEX mFnAcceptEx; GUID guidAcceptEx = WSAID_ACCEPTEX ; if (SOCKET_ERROR == WSAIoctl(mListenSocket, SIO_GET_EXTENSION_FUNCTION_POINTER, &guidAcceptEx,...
더 읽기

C++ - libuv - Visual Stuido 솔루션 파일 만들기

GitHub 에서 소스 코드를 받는다. 소스 코드의 root 디렉토리에 vcbuild.bat 파일이 있다. 콘솔 창을 열어서 vcbuild.bat을 실행한다. 사전에 Visual Stuido가 먼저 설치 되어 있어야 한다. vcbuild.bat 이 있는 root 디렉토리에 uv.sln가 생성 되어 있다.
더 읽기

git - submodule 사용 예

C++ 오프소스 라이브러리 googletest를 submodule로 설치 후 커밋하기 cd helloworld mkdir third_party cd third_party/ git submodule add git@github.com:google/googletest.git gtest cd gtest git checkout release-1.8.1 git add ../../../.gitmodules git commit
더 읽기

신인 프로그래머가 알아야 할 프로그래밍의 원칙 5개

출처 KISS Keep It Simple, Stupid 간단하게 해 어리석은 놈아 코드를 쓸 때 “단순성”이나 “간결성”을 최대 중요 항목으로 한다. 코드는 자연에 맡겨 수정해 가면 무 질서하게 되고 복잡해진다. 그 결과, 읽기 어렵고 수정하기 어려워진다. 코드를 간단하게 유지하는 것으로 수정하기 쉬워...
더 읽기

golang - 시스템 상태 알기

이 저장소의 코드 발췌 import ( "encoding/json" "io" "net/http" "runtime" "strconv" "sync" "time" ) // Stats represents activity status of Go. type Stats struct { Time int64 `json:"time"` // runtime GoVersion string `json:"go_version"` GoOs string `json:"go_os"` GoArch string `json:"go_arch"` CpuNum...
더 읽기

C++ - C++를 공부할 때 도움이 되는 C++ MS Docs 사이트

마이크로 소프트사의 개발자 지원 중에서 예전부터 칭찬을 받는 것 하나가 풍부한 문서를 제공하는 것이다. 예전에는 MSDN 이라는 사이트에 가서 MS가 만든 다양한 기술 문서를 보았다. 몇 년전부터는 MS는 Docs 라는 사이트를 만든 후 여기에 문서를 업데이트 하고, 이전 문서는 MSDN에...
더 읽기

golang - 시그널 핸들링

Go에서는 아래처럼 시그널을 핸들링 할 수 있다. package main import ( "fmt" "os" "os/signal" "syscall" ) func main() { sig := make(chan os.Signal, 1) signal.Notify(sig, syscall.SIGKILL, syscall.SIGTERM, syscall.SIGINT) s := <- sig fmt.Println("signal: ", s) } syscall 패키지의 시그널은 linux/unix에...
더 읽기

C++ - POD 타입의 기본 초기화

출처 C++ 에서는 변수의 선언이나 new 식에서 생성자에 넘기는 인수가 빈 경우는 인수 리스트를 생략할 수 있다. class foo { // 생략 }; int main(void) { // ↓ 어느쪽을 사용해도 같다 foo a; foo b{}; // ↓ 어느쪽을 사용해도 같다...
더 읽기

.NET Conf 2019 Seoul

세미나 소개 및 신처 10월05일입니다. 저는 마지막 시간인 16시 10분 - 18시 00분 (110분) : SuperSocket을 이용하여 .NET Core 플랫폼에서 고성능 TCP Socket 서버 만들기 입니다. 실습 세션으로 SuperSocket에 대해서 핵심적인 부분을 설명한 후 Echo 서버와 채팅 서버를 같이 만들어...
더 읽기