개발일지/C# 채팅 프로그램

20250513 개발일지. 소켓 관련 게시글 읽기 3.

박준희 2025. 6. 10. 13:00
728x90

# IOCP와 overlapped I/O를 현재 공부 할 단계인가
IOCP와 overlapped I/O는 지금 공부할 단계가 아님 -> c++ 학습 후 다시 공부 예정
지금은 C# SocketAsyncEventArgs 를 사용한 EAP 기반 소켓 프로그래밍 공부를 집중적으로 하고 코딩하는것에 집중

 

# C# SocketAsyncEventArgs 예제 내 세마포어 의문점
예제에 세마포어를 사용했는데 세마포어는 공유자원을 지정한 개수의 스레드만 접근할 수 있도록 지정하는 것인데 지정한 개수의 스레드끼리의 공유자원
레이스컨디션 문제는 없는것인가 -> 커넥션 풀 내부 팝 메소드에 lock이 존재해서 문제 없음
예제에 세마포어는 최대 커넥션 수를 제한하는데 사용

https://www.codeproject.com/Articles/83102/C-SocketAsyncEventArgs-High-Performance-Socket-Cod


# 게임 서버 보안
패킷 번호 셔플
https://ndcreplay.nexon.com/NDC2014/sessions/NDC2014_0047.html

# 게임 서버 라이브 서비스 시행착오
https://changmyeong.tistory.com/79

# 풀 구현 시 자료구조 스택과 큐 특징
스택사용 시 직전에 사용된 객체는 캐시에 있을 확률이 높으므로 성능 업. 대신 DB커넥션같은 경우 장기 미사용시 커넥션 타임 아웃같은 문제가 있을 수 있음.
큐 사용 시 커넥션 타임 아웃 같은 증상을 해소 할 수 있음

728x90