본문 바로가기

게임 회사

[3] 소켓 프로그래밍 게임 서버 프로그래밍 시 주의사항 - 게임 서버는 TCP를 이용할 경우 클라이언트의 개수만큼 소켓이 있어야 함 - 파일 핸들을 하는 동안 스레드가 대기하는 일이 없어야 함 소켓에 대한 입출력 방식 - 동기 입출력 방식 : 블로킹 소켓(blocking socket) - 비동기 입출력 방식 : 논블로킹 소켓(non-blocking socket), Overlapped I/O, epoll, I/O Completion Port(IOCP) 블로킹 소켓(blocking socket) 1) 블로킹(blocking)이란? - 디바이스에서 처리 요청(받은 데이터를 디바이스에 기록 혹은 호출)을 걸어 놓고 응답을 대기하는 함수 호출 시, 스레드에서 발생하는 대기 현상 - 해당 상태에서는 CPU 사용량이 0%이므로 스레드는 .. 더보기
[2] 컴퓨터 네트워크 클라이언트 : 서비스를 이용하는 사용자들의 단말기 서버 : 서비스를 제공하는 무인 컴퓨터 네트워크 스위치 - PC간 랜선으로 연결하여 LAN(Local Area Network)를 형성 OSI 7계층 1. 물리 계층 : 하드웨어를 다루며 데이터의 파형을 결정 2. 데이터 링크 계층 - 프레임(frame)이라는 단위로 통신 - LAN 통신이 가능하게 함 - LAN간 데이터를 전송하지만 반드시 전송되지는 않음 3. 네트워크 계층 - WAN(Wide Area Network)이 가능하게 함 - 즉, LAN 간의 통신이 가능하게 하기 위해 네트워크 스위치간의 데이터가 전송되어야 함 - 이 때, 스위치에 데이터를 한 번에 전달하지 못할 경우, 이를 전달하기 위해서는 라우터(router)를 통함 - IP(Interne.. 더보기
[1]스레드와 멀티 스레드 개인적으로 취업을 준비하면서 공부한 내용을 정리하는 목적입니다. 틀린 부분은 말씀 주세요. 프로그램(program) = 데이터(data) + 코드(code) 프로세스(process) = 컴퓨터 내에서 실행중인 프로그램의 상태 스레드(thread) = 프로세스 내에서 명령어를 한 줄씩 처리하는 기본 단위 process vs thread - 스레드는 한 프로세스 안에 여러 개가 있음 - 한 프로세스 안에 있는 스레드들은 같은 메모리 공간을 사용할 수 있음 - 스레드마다 스택을 가짐(각 스레드에서 실행되는 함수의 로컬 변수들이 스레드마다 있음) 로딩 = 프로그램 내에 있는 코드와 데이터를 프로세스 메모리로 불러들임 호출 스택(call stack) - 함수 호출(function call)을 추적할 때 사용, 함.. 더보기