서버 5

다중서버정리(iocp)

iocp기반임. 250401/250403 수업 (아직 미완성..) 비동기 다중접속에서 Accept는 AcceptEx로 해준다..일단 여기서도 EXP_OVER로 OVERLAPPED 구조체를 확장시켜줘서 사용함.각 EXP_OVER는 자기가 어떤... 작업인지 정보를 갖고있음(수업에선 enum통해서 작업 구분함.. IO_RECV, IO_SEND, IO_SEND로..) EXP_OVER안에... os에 넘길 비동기 정보 WASOVERLAPPED구조체가 있음Overlapped 구조체... 모든 send, recv는 이 구조체가 필요.하나의 구조체를 여러 호출에서 사용하는건 불가능!! 개당 하나씩 필요.소켓당, recv호출은, 무조건 하나씩...!!!!소켓당, send호출은 여러개 가능하다.. -> 이게 브로드 캐스..

서버 2025.04.06

일대일서버정리

IOCP가 뭐야? (InputOutputCompletionPort)Windows에서 고성능 네트워크/파일 비동기 처리를 위해 만든 시스템 큐비동기 작업이 끝나면 os가 큐에 완료했다고 넣어주고, 우리는 그걸 꺼내쓰는 방식...게임서버의 핵심은 IOCP.. iocp를 쓰겠다고 하면, 커널에 iocp 객체를 생성, 걔를 통해서 io를 진행! WSAOVERLAPPED└ Windows에서 비동기 io작업을 위한 구조체임...작업의 상태와 완료 정보를 담는 상자... 그냥 recv, send└ 이 함수들을 호출 시 작업이 끝날 때 까지 코드가 멈춘다.. WSARecv, WSASend└ 작업만 시작해주고, 바로 리턴. 나중에 작업이 완료되면 그 사실을 IOCP나 이벤트를 통해 통지받음.이때 이 작업 진행 상태 및 ..

서버 2025.04.06

서버 2w1(네트워크프로그래밍)

250311앞시간에 pipeline실습돌려봄(이건 1w2에 정리) 네트워크 프로그래밍 ( = 소켓 프로그래밍 )네트워크를 통해 여러 프로그램이 데이터를 주고받는 것을 의미함.위치에 구애받지 않고, 모든 프로그램은 네트워크프로그래밍을 통해 구현된다!우리는 네트워크 프로그래밍을 이해하기 위해 소켓을 다룰 줄 알아야함!~ 파일 I/O와 거의 같다..└ 디스크에서 데이터를 읽고 쓴다..주요 함수로는 open() : 파일을 열어 디스크와 연결read(), write() : 파일에서 데이터를 읽고 쓴다close() : 파일을 닫음 cpp에서의 stream은 잊을 것.. os에서 제공해주는 게 아니다! 네트워크 I/O는..└ 네트워크를 통해 데이터를 송수신!connect() : 상대방(서버)와 연걸send(), re..

서버 2025.03.18

서버1w2

250306● 게임 서버를 위한 하드웨어와 소프트 웨어 MMO게임서버의 특징- 고사양을 필요로함.. (용량 개큼)ex) 100기가 사이즈라면?.. 근데 메모리가 100기가 전부 올라오는게 아님..플레이어가 현재 존재한 위치의 데이터만 올라옴.. (플레이어가 스테이지 1에 위치하면 스테이지 1에 대한 메모리(데이터)만 올라온다!.. 그러나 서버!!는.. 서버에 필요한 메모리가 100기가라면 100기가 전부 올라와야한다..왜냐면... 플레이어는 혼자가 아님..(ㅈㄴ여러명) 그 사람들 다 각기 원하는 곳, 원하는 스테이지(지형)에 서있기에 모든 지형에 대한, 각자 데이터가 필요하다... 그래서 서버는 메모리가 전~부 필요한 것ㅎ=> 어쨌든 많은 데이터를 요구하니 가능한 한 최고사양의 pc를 사용해 동접을 올린..

서버 2025.03.18

서버1w1

250304 1w1서버수업정리게임의 구분...  Standalone 게임- 구입 후 혼자하는 게임.- 게임 머신만 있으면 실행이 가능함.....(pc, 콘솔, 닌텐도 스위치등)Online 게임- 게임을 실행할 때 인터넷 연결이 필수인 게임..- 로그인이 필수! 실행기계를 바꿔도 정보가 그대로 남아있다..- standalone 게임의 온라인화라고 볼 수 있음 (steam) 온라인 게임의 구분● 1인용 온라인 게임 (초기 모바일, 많은 steam 게임들이 예시..)- 로긘필요, 게임은 standalone으로, 게임결과를 서버에 올림● Peer to Peer (p2p) 게임- standalone게임에 네트워크 대전을 지원, 로비서버를 사용해 match making함- 게임 진행 자체는 사용자 기계에서만..● ..

서버 2025.03.14