728x90

레이턴시 4

나만무 슬레이어즈 9

나만무문제. 패킷이 잘려서 json parsing이 안되는 상황게임을 진행하다가 서버에서 SyntaxError : Unexpected token가 뜨는 상황이 발생했다.서버의 로그를 확인해보니 패킷이 잘려있는 문제를 확인했다.가설 1. 클라이언트 문제가설 2. 서버 문제가설을 토대로 생각을 해보니 서버 문제라는 것을 찾을 수 있었다.클라이언트와 서버 연결을 하고 있는 TCP의 경우 네이글 알고리즘(Nagle’s Algorithm)에서 작은 패킷들을 모아서 전송하기 때문에 패킷이 뭉쳐서 서버에 들어왔다.기존 서버의 패킷 처리 방식에서는 뭉쳐있는 패킷을 받을 경우, 맨 앞의 데이터만 처리하고 이외의 데이터는 버리도록 코드를 작성했다. 그리고 이러한 스트림에 패킷이 잘려서 들어온 경우 대응이 불가능했다.해결f..

Study/Project 2024.05.04

24.05.04 나만무

나만무문제. 패킷이 잘려서 json parsing이 안되는 상황게임을 진행하다가 서버에서 SyntaxError : Unexpected token가 뜨는 상황이 발생했다.서버의 로그를 확인해보니 패킷이 잘려있는 문제를 확인했다.가설 1. 클라이언트 문제가설 2. 서버 문제가설을 토대로 생각을 해보니 서버 문제라는 것을 찾을 수 있었다.클라이언트와 서버 연결을 하고 있는 TCP의 경우 네이글 알고리즘(Nagle’s Algorithm)에서 작은 패킷들을 모아서 전송하기 때문에 패킷이 뭉쳐서 서버에 들어왔다.기존 서버의 패킷 처리 방식에서는 뭉쳐있는 패킷을 받을 경우, 맨 앞의 데이터만 처리하고 이외의 데이터는 버리도록 코드를 작성했다. 그리고 이러한 스트림에 패킷이 잘려서 들어온 경우 대응이 불가능했다.해결f..

게임 서버 프로그래밍 교과서 5장. 게임 네트워킹

5장. 게임 네트워킹 5.1 UML 프로그램 구조 명세를 표현하는 대표적 수단이다. UML 시퀀스 다이어그램 UML 시퀀스 다이어그램에서는 객체와 메시지를 사용한다. 객체는 상호 작용의 주체(예 : 클라이언트, 서버)에 해당한다. 메시지는 상호작용의 내용(예 : 메시지 전달, 함수 실행, 이벤트 수신)으로 화살표이다. 화살표 방향을 보고 보내는 쪽과 받는 쪽을 구분할 수 있다. 시퀀스도의 주요용도는 객체 간 메시징 흐름을 일목요연하게 표현하는 것이다. 시퀀스도는 객체 사이에 메시지를 주고 받는 것을 한눈에 알아보기 쉽게 표현할 수 있다. 시퀀스도는 주고 받는 메시지를 어떻게 처리하는지 자세하게 표현하는 데는 한계가 있는데, 플로 차트를 함께 사용하면, 보다 자세하게 프로그램의 실행방식을 그림으로 묘사할 ..

24.04.09 서버 프로그래밍, 서버 공부

게임 서버 프로그래밍 교과서 4장. 게임 서버와 클라이언트 4.1 패키지 게임에서 게임서버 데디케이티드(decidated server) 렌더링과 사용자 입력 처리를 전혀 받지 않고, 순전히 클라이언트의 연결을 받는 세션을 처리만 하는 프로그램이 따로 들어있는 경우 4.2 서버의 역할 싱글 플레이 게임의 게임루프(game loop) 입력받기 → 게임 로직 처리하기 → 렌더링 4.3 게임 클라이언트와 서버의 상호작용 게임 클라이언트가 서버에 데이터, 즉 메시지를 전달하면 서버는 이를 수신하여 메시지 내용에 따라 특정한 행동을 한다. 반대로 서버에서 클라이언트에 메시지를 전달하면 클라이언트는 수신한 메시지 내용에 따라 특정한 행동을 한다. 이렇게 메시지가 오가는 과정을 상호작용(interaction)이라고 한..

728x90