profile
인디 게임을 만들며 공부하고 있습니다.
post-thumbnail

개인공부) 서버실습(33) - String Packet

long은 8바이트, short은 2바이트 이렇게 크기가 정해져있지만 string 타입의 경우는 정해져있지 않기에 넘기기 어렵다. array write slice로 변경 read도 slice로 변경 string을 어떻게 넘길지 고민 c#에서는 string, cha

어제
·
0개의 댓글
post-thumbnail

독서 기록 - 오늘부터 개발자

보통 관심분야가 있을 때 책을 통해 다른 사람들의 마인드셋이나 지식들을 많이 배우곤 하는데, 아직 개발에 대한 지식이 부족하기에 깊이가 깊은 책은 어려워 쉽게 읽을 수 있는 책을 찾다가 알게 되었다.'쌀 팔다 개발자'라는 타이틀로 쌀을 팔다가 나와 비슷한 나이로 개발자

4일 전
·
0개의 댓글
post-thumbnail

개인공부) 서버실습(31) - PacketSession(3)

serialization, deserialization. 직렬화와 역직렬화 작업을 간단하게 실험해보며 현재 부족한 부분의 코드를 개선하는 작업을 하였다.지난시간에 열심히 개선해준 OnConnected에서 buffer를 날려준 부분을 더 사용하기 편하게 PlayerInf

4일 전
·
0개의 댓글
post-thumbnail

개인공부) 서버실습(30) - PacketSession(2)

간략하게 Send 처리를 하던 부분을 조금 더 효율적으로 개선하는 작업을 배웠다. 오늘도 이어서 더 개선할 수 있는 부분을 찾아 개선할 것이다.string이나 list 같은 타입이 추가 될 경우 단순하게 숫자 넘겨주는 방식으로는 진행이 어려워 압축하여 보내는개념 Cla

5일 전
·
0개의 댓글
post-thumbnail

개인공부) 서버실습(29) - PacketSession

Open()을 통해 큰 사이즈를 만들고 사용한 만큼 Close()에 넣어 할당하며, 큰 사이즈의 크기에서 점점 채워가며 사용하는 방식의 SendBuffer를 제작하였고 이제 본격적으로 패킷 작업을 위해 구성을 해놓을 것이다. 패킷의 값으로 구분하기패킷을 전송하는 방식을

7일 전
·
0개의 댓글
post-thumbnail

개인공부) 서버실습(28) - SendBuffer

Receive Buffer를 제작하여 하드 코딩식이 아닌, 패킷 처리가 됐을 때도 적용 가능하도록 틀을 구성하였다. 기존 Send는 Encoding 하여 byte타입으로 넘겨주고, SendQueue에 저장하며 처리하는 방식이었다. 이번에는 이 부분을 개선 해줄 것이다.

2022년 6월 20일
·
0개의 댓글
post-thumbnail

개인공부) 서버실습(27) - RecvBuffer

TCP와 UDP가 뭔지 조금 더 자세하게 알아보고, 이번 프로젝트를 제작해보며 사용하게 될 TCP에 특성에 대해 알아봤다.TCP의 특성중 현재 처리 가능한 패킷만 받고, 나머지는 나중에 처리하는 것이 있는데 이럴때 상황을 처리하기 위해 코드 작업을 해놓아야 한다.시작시

2022년 6월 19일
·
0개의 댓글

개인공부) 서버실습(26) - TCP, UDP

TCP/IP 프로토콜 을 학습할 당시에 간단하게 알고 넘어갔지만 패킷 통신처리를 하기 위해서는 TCP는 뭐고, UDP랑은 어떤 차이가 있는지 이해해야 처리를 할 수가 있다.TCP로 구성시에는 요청시에 100bytes를 요청해도 상황에따라 30bytes 만 처리하고, 나

2022년 6월 17일
·
0개의 댓글
post-thumbnail

개인공부) 서버실습(25) - Connector

클라이언트와 서버간의 통신은 당연하지만, 서버만 있는 곳에 왜 Connector가 필요할 까 의문이 들 수 있다.이유는 게임 서버를 구축하다 보면 서버가 여러개 제작 되기도 하는데, 이때도 서버끼리도 한 명은 요청을 보내고 받는 구조이다. 결국 서버 끼리도 연결 요청이

2022년 6월 16일
·
0개의 댓글
post-thumbnail

개인공부) 서버실습(24) - 서버 코드 구분, 비동기 처리(5)

버퍼를 하나씩 보내는게 아닌, BufferList를 활용하여 버퍼들을 한 번에 담아 보내는 방법으로 수정을 하고, 그 과정 중에서 배열의 일부분을 받을 수 있는 ArraySegment< T >를 배워 적용하였다.Send를 할 때는 지난 번 구현한 것에서 처리를 하

2022년 6월 15일
·
0개의 댓글
post-thumbnail

개인공부) 서버실습(23) - 서버 코드 구분, 비동기 처리(4)

Accept, Receive의 비동기 처리까지 완료하고, send를 비동기 처리하는 작업을 하였다. 하지만 아직 효율적이게 개선이 완료된 것이 아니기에 오늘도 이어서 개선해나아갈 예정이다.\_sendArgs는 버퍼 사이즈 설정 이슈로 receive 처럼 새로 생성하고

2022년 6월 14일
·
0개의 댓글
post-thumbnail

개인공부) 서버실습(22) - 서버 코드 구분, 비동기 처리(3)

Receive 하는 부분을 새로운 Session Class로 구분하여 코드를 정리하고, listener 처리와 동일하게 SocketAsyncEventArgs를 사용해 비동기 처리를 제작하였다. 오늘은 이어서 Send 부분을 처리할 것이다.지난 시간 Receive는 사용

2022년 6월 13일
·
0개의 댓글
post-thumbnail

개인공부) 서버실습(21) - 서버 코드 구분, 비동기 처리(2)

코드를 조금 더 효율적이게 구분하고, 비동기 처리가 될 수 있게 구현을 해보았다. 과정중에서 이벤트 기안을 동작하는 SocketAsyncEventArgs 를 사용하여 아주 편하게 코드 구성을 할 수 있었다.유저들이 많이 몰릴 경우 처리 \-> 해당 부분을 여러개 생성하

2022년 6월 13일
·
0개의 댓글
post-thumbnail

개인공부) 서버실습(20) - 서버 코드 구분, 비동기 승인 처리

소켓 프로그래밍에 대해 처음으로 구현을 했다. 순서가 정해져 있다보니 과정에 이해가 쉬웠다. 서버: 생성 -> 결합 -> 대기 -> 승인 -> 통신 -> 종료클라이언트: 생성 -> 연결 요청 -> 통신 -> 종료지난 시간에 구현한 소켓 프로그래밍의 경우 코드가 모두 메

2022년 6월 11일
·
0개의 댓글
post-thumbnail

개인공부) 서버실습(19) - 소켓프로그래밍 기초

✅ 지난 시간 TCP/IP 5계층이라는 구분을 통해 네트워크가 어떻게 동작하는지 간단하게 알 수 있었다. 구조마다 각자 하는 일이 다르구나 정도만 이해한 상태라 틈틈히 찾아보고 이해해야겠다. 소켓 프로그래밍 기초 > 소켓이란? 네트워크 송수신할 수 있도록 '네트워크

2022년 6월 11일
·
0개의 댓글
post-thumbnail

개인공부) 서버실습(18) - 통신모델 TCP/IP

네트워크에 기초를 배우며 패킷이 어떻게 목적지로 가는지 택배를 예시로 배우니 쉽게 이해가 될 수 있었다. TCP/IP 5계층이란?네트워크의 기본 구조를 5계층으로 나누어 구분한 것이다. 각 다른 역할을 하는 5가지의 층을 통해 네트워크 통신이 발생한다.물리 계층은 말

2022년 6월 9일
·
0개의 댓글
post-thumbnail

개인공부) 서버실습(17) - 네트워크 기초 이론

각 쓰레드만의 고유 공간이었던 TLS를 마지막으로 쉽지 않았던 멀티쓰레드 이론 챕터가 끝났다. 이제 내가 정리한 내용을 바탕으로 다시 복습해 나아갈 예정이고,그래도 다음 챕터인 네트워크는 바로 들으면서 개념을 빨리 익혀야겠다.필요한 이유서버 프로그래밍이라면 안정성 +

2022년 6월 9일
·
0개의 댓글
post-thumbnail

개인공부) 서버실습(16) - Thread Local Storage

Read Write Lock을 구현하며 비트에 할당하는 부분이 잘 이해가 되지 않아 배우기 쉽지 않았다. 그래도 여러번 듣다보니 익숙해져서 결국 정리는 잘 해두었지만, 반복해서 보면서 내용을 잘 기억해야겠다.개념설명TLS 란 각 쓰레드간의 공유-개인 사이에 있는 듯한

2022년 6월 8일
·
0개의 댓글
post-thumbnail

개인공부) 서버실습(15) - ReaderWriterLock 구현

✅ 지난 시간 읽을(Read) 때는 자유롭지만, 쓸(Write) 때는 lock을 통해 작동할 수 있는 상황에서 사용되는 ReaderWriterLock의 개념에 대해 배웠고, 실전에 적용해볼 시간이다. 🔧 실습 우선 정책에 대한 정의가 필요하다. 재귀적 허용을 할 것

2022년 6월 8일
·
0개의 댓글