20250509 개발 일지. 소켓 관련 게시글 읽기.
# 마샬링
데이터를 변환시키는 일련의 과정. 직렬화보다 큰 단위.
직렬화는 데이터를 바이트스트림으로 변환하는 과정
다른 언어에서의 데이터 전달도 마샬링으로 칭하는 듯
# SocketAsyncEventArgs 메모리 릭 현상
소켓인수객체를 재사용하지 않거나 인수의 버퍼를 초기화하지 않으면 메모리릭 발생
인수 풀링, 버퍼 풀링 필요
SocketAsyncEventArgs 콜백함수 제거 -=
SetBuffer(null, 0, 0) 으로 버퍼 해제
객체 소멸시 Dispose 함수 호출 필요
https://shakddoo.tistory.com/entry/c-SocketAsyncEventArgs-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EB%A6%AD-%ED%98%84%EC%83%81
# 데드 레커닝
네트워크 레이턴시 사이에 예측가능한 행동을 계산해서 보간함
https://blog.naver.com/imays/223388177307
# IOCP
https://jettstream.tistory.com/342
# EAP 방식 소켓
https://learn.microsoft.com/ko-kr/dotnet/api/system.net.sockets.socketasynceventargs?view=net-9.0
https://blog.danggun.net/3596
https://www.codeproject.com/Articles/83102/C-SocketAsyncEventArgs-High-Performance-Socket-Cod
[.NET] SocketAsyncEventArgs - 'SocketAsyncEventArgs'의 이해
.net에서 소켓 프로그래밍을 하려면 몇 가지 선택사항이 있는데 그중 하나가 'SocketAsyncEventArgs'입니다. 전에 '[.Net] SocketAsyncEventArgs - 큰 데이터(Large Data) 전송할 때 생기는 문제'라는 글에서 버퍼크
blog.danggun.net
CodeProject
For those who code
www.codeproject.com
# 오늘 한 일
msdn SocketAsyncEventArgs 분석
소켓 클라이언트 코드 작성
실시간 게임 서버 관련 기사 읽기
IOCP 관련 읽기
IOCP 관련은 읽어도 무슨 소리인지 잘 모르겠다.
I/O 완료 포트이고 읽기 쓰기를 위해 최적화(읽기, 쓰기를 위해 사용되는 쓰레드 및 포트를 최소화 또는 재사용)된 소켓 API라고 생각중
EAP는 최대한 버퍼 재사용, 인수객체 풀 사용을 해야 메모리 릭이 발생하지 않고 최대 성능을 냄
게임 서버 관련 게시글을 많이 읽었으나 여러가지 많이 해야하고 겁주는 내용이 많아 일단 뭔가 계속 만들어내는 방향으로 진행예정