728x90

프로그래밍 6

char* 형식의 인수가 LPCWSTR 형식의 매개 변수와 호환되지 않습니다.

char* 형식의 인수가 LPCWSTR 형식의 매개 변수와 호환되지 않습니다. 서버를 만드는 중 이러한 오류가 떴다. 프로젝트 생성시 유니코드 문자 집합으로 생성했기에 생긴 문제이다. 프로젝트 설정에서 문자집합의 설정을 바꾸거나 T매크로를 사용하면 해결 가능하다. 참조 https://m.blog.naver.com/chrhdhkd/220443281556 const char * 형식의 인수가 LPCWSTR 형식의 매개 변수와 호환되지 않습니다. 작업중 const char * 형식의 인수가 LPCWSTR형식의 매개변수와 호환되지 않습니다라는 오류가 뜰때 ... blog.naver.com

언어/C++ 2024.04.13

게임 서버 프로그래밍 교과서 3장. 소켓 프로그래밍

3장 소켓 프로그래밍 온라인 게임 프로그래밍에서 소켓은 파일 핸들 방식과는 약간 다르다. 게임 서버에서는 다루어야 하는 소켓 개수가 많다. TCP를 이용해서 통신하는 경우 클라이언트 개수만큼 소켓이 있어야 한다. 파일 핸들을 하는 동안 스레드가 대기하는 일이 없어야 한다. 디스크를 읽거나 쓸 때 사용하는 read(), write() 함수는 호출 후 실행이 완료될 때 까지 리턴하지 않는다. 소켓을 이용해서 읽기/쓰기를 하는 함수를 호출 했는데 즉시, 리턴하지 않는다면 이들을 호출한 메인 스레드는 사용자 입장에서 일시정지 하는 것 처럼 보인다. 이러한 이유 때문에 네트워크 프로그래밍에서 소켓은 보통 비동기 입출력(Asynchronous I/O) 상태로 다룬다. 소켓을 비동기 입출력으로 다루는 방식에는 크게는..

24.04.05 서버 프로그래밍

게임 서버 프로그래밍 교과서 1장 멀티스레딩 1.1 프로그램과 프로세스 프로그램은 크게 코드(code)와 데이터(data)로 구성되어 있다. 프로그램은 실행하면 이를 프로세스라고 한다. 이런 프로세스가 여러개 실행되고 있는것을 멀티 프로세싱 이라고 한다. 1.2 스레드 각 프로세스는 독립된 메모리 공간이 있고, 기본적으로 서로 다른 프로세스는 상대방의 메모리 공간에 쓸 수 없다. 일반적으로 많이 쓰는 운영체제는 대부분 스레드(thread)라는 기능을 제공한다. 스레드 역시 프로세스처럼 명령어를 한 줄씩 실행하는 기본 단위이다. 스레드와 프로세스의 차이 스레드는 한 프로세스 안에 여러 개가 있다. 한 프로세스 안에 있는 스레드는 프로세스 안에 있는 메모리 공간을 같이 사용할 수 있다. 스레드마다 스택을 가..

CSAPP 12

12. 동시성 프로그램 논리적 제어흐름은 이들이 시간적으로 중첩되면 동시적이다. 이와 같은 현상을 동시성이라고 한다. 응용수준 동시성은 다양한 경우 유용하다. 느린 I/O 디바이스 접근하기 : 응용프로그램은 유용한 작업을 I/O요청과 겹치게 한다. 사람들과 상호 작용하기 : 사용자가 어떤 동작을 요청할 때 마다, 이 동작을 수행하기 위해 별도의 동시성의 논리 흐름이 생성된다. 작업을 지연시켜서 시간지연 줄이기 : 다른 동작을 지연시키고 이들을 동시에 수행해서 특정 동작 시간 지연을 축소하기 위해 동시성을 이용한다. 다수의 네트워크 클라이언트 처리 : 클라이언트마다 별도의 논리흐름을 생성하는 동시성 서버 멀티코어 머신에서 병렬로 계산하기 동시성 프로그램을 만들기 위한 세 개의 기본 접근방법 프로세스 : 각..

책/CSAPP 2024.02.24

Chapter 01. 네트워크 프로그래밍과 소켓의 이해

네트워크 프로그래밍과 소켓의 이해 01-1 네트워크 프로그래밍과 소켓의 이해 네트워크 프로그래밍 : 서로 다른 두 컴퓨터가 데이터를 주고 받을 수 있도록 하는 것. 소켓(Socket) : 물리적으로 연결된 네트워크 상에서 데이터 송수신에 사용할 수 있는 소프트웨어적인 장치. 프로그래밍에서의 ‘소켓’은 네트웨크 망의 연결에 사용되는 도구다. 연결이라는 의미가 담겨있어서 ‘소켓’이라는 표현을 사용한다. 그리고 그 의미를 조금 더 확장해서 소켓은 네트워크를 통한 두 컴퓨터에 연결을 의미하기도 한다. socket 함수를 통해 소켓생성 소켓생성 - socket 함수 호출 IP주소와 PORT번호 할당 - bind 함수호출 연결요청 가능상태로 변경 - listen 함수호출 연결요청 대한 수락 - accept 함수호출..

CSAPP 11

CSAPP 11. 네트워크 프로그래밍 모든 네트워크 응용들은 동일한 기본적인 프로그래밍 모델에 기초하고 있으며 이들은 비슷한 전체 논리구조를 가지고 동일한 인터페이스를 사용한다. 11.1 클라이언트 - 서버 프로그래밍 모델 모든 네트워크 응용프로그램은 클라이언트 - 서버 모델에 기초하고 있다. 이 모델을 사용해서 응용은 한 개의 서버 프로세스와 한개 이상의 클라이언트 프로세스로 구성된다. 서버는 일부 리스소를 관리하고, 이 리소스를 조작해서 클라이언트를 위한 일부 서비스를 제공한다. 클라이언트 - 서버 모델에서 근복적인 연산은 트랜잭션이다. 클라이언트 - 서버 트랜잭션은 네 단계로 구성된다. 클라이언트가 서비스를 필요로 할 때, 클라이언트는 한 개의 요청을 서버에 보내는 것으로 트랜잭션을 개시한다. 서버..

책/CSAPP 2024.02.18
728x90