분류 전체보기
-
20250527 개발일지. 소켓 관련 게시글 읽기 및 부하테스트 진행, 버그 발생.개발일지/C# 채팅 프로그램 2025. 6. 16. 13:07
점심쯤 도착# 10만 연결에 대한 고찰 https://shdkej.com/blog/100k_concurrent_server/https://tech.kakao.com/posts/391# 메세지 브로커 필요이유 https://binux.tistory.com/74# 부하테스트브로드캐스트 100ms 주기로 더미클라이언트 100개 진행. 작동은 잘 되나 메모리가 점점 늘어남. 39MB까지 5000명은 커넥션 완료까지 2분정도 소요. 메세지가 밀려 받지 못함. 1000명도 브로드캐스트 메세지 한번 받고 멈춤 클라이언트 메세지 주기 1000ms 클라이언트 메세지 주기 100ms. 더미 클라 100개. 서버 처리 루프 대기 100ms 로 했더니 서버 특정 클라이언트 세션의 샌드큐가 15000개로 쌓여있음. 클라이언트 ..
-
20250526 개발일지. 버그 원인 분석 및 수정개발일지/C# 채팅 프로그램 2025. 6. 16. 12:58
10시 45분쯤 공유오피스 도착 # 에러메세지 및 에러 분석System.InvalidOperationException: 'An asynchronous socket operation is already in progress using this SocketAsyncEventArgs instance.' 소켓인수 재사용 문제인 것 같음. 1명일 경우 문제 없는데 2명 이상일 때 문제 발생. -> 브로드캐스트과정에서 saea 인수를 사용한 Send 또는 Recv 작업이 완료 이벤트 전에 또 호출 될 경우 문제 발생 -> 샌드 큐를 만들어 문제 해결 유저id가 예상과 다르게 표시되는 문제 발생. 더미 클라 2개로 테스트 시 브레이크 포인트를 찍고 천천히 진행하면 서버 세션1 -> 유저 세션0 에 메세지 전달 로그..
-
20250523 개발일지. 소켓 개발 코드 수정 및 부하 테스트 중 버그 발생개발일지/C# 채팅 프로그램 2025. 6. 16. 12:43
# 일지전날은 플레이엑스포 방문으로 공부 못함. 인디게임들은 보통 스토리 종류 게임이 주였고 멀티게임은 거의 없었다. 기억에 남는건 캐릭터를 당겨서 움직이고 공격하는 게임과 디비전 스타일 서브컬처류 게임이 기억에 남는다. 오늘도 점심쯤 시작 # Listener Listener 작성 및 적용 완료 # 부하테스트 진행 및 버그 발생부하테스트용 더미 클라이언트에 커넥션을 늘려 서버 테스트를 진행하려했는데 해당 에러 발생. 이건 구조적 문제라 처리하는데 시간이 좀 걸릴듯 하다 System.InvalidOperationException: 'An asynchronous socket operation is already in progress using this SocketAsyncEventArgs instance.'
-
20250521 개발일지. 버그 수정 및 코드 최적화개발일지/C# 채팅 프로그램 2025. 6. 12. 13:33
# 개발일지오늘도 점심쯤 시작 ## 버그 수정버퍼 클리어 없이 재사용해서 전송했더니 첫 전송보다 작은 데이터 전송일 경우 이후 바이트에 이전 데이터가 남아 같이 전송됨.한글 입력 시 해당 에러남 -> string.Length 로 문자 길이를 구할 시 문자 개수가 출력 ex) ab -> 2, 사과 -> 2 Encoding.UTF8.GetBytes 메소드로 해당 문자열 인코딩에 따른 바이트 수를 구해서 샌드 버퍼 길이에 적용 System.ArgumentException: 'The output byte buffer is too small to contain the encoded data, encoding codepage '65001' and fallback 'System.Text.EncoderReplacem..
-
20250520 개발일지. 네트워크 관련 게시글 읽기 및 버그 해결.개발일지/C# 채팅 프로그램 2025. 6. 12. 13:25
# 채팅 서버에 패킷 사이즈를 허위로 설정하고 보낼 경우패킷 사이즈 허위 -> 연결 해제 # 엔디안빅엔디안 작은주소에서 큰주소. 사람 보기 직관적. 네트워크 통신에선 빅엔디안 사용.리틀엔디안은 큰주소에서 작은주소. 데이터 타입 캐스팅에 유리. 예로 short 타입 0x0001를 리틀엔디안으로 저장할 경우 0x01 0x00 순으로 저장되는데 char 타입으로 캐스팅 시 앞 0x01 만 가져오면 됨.# C# 직렬화 방식별 벤치마크 unsafe 키워드와 비슷한 속도인 tryWriteByte가 사용하기 제일 좋음 https://rito15.github.io/posts/cs-serializations-to-byte-array/# 채팅 프로그램 버그 수정 시행착오클라이언트 커넥션 부분에서 해당 에러 발생하는데 원..
-
20250519 개발일지. 소켓 관련 게시글 읽기 및 개발 착수.개발일지/C# 채팅 프로그램 2025. 6. 12. 13:15
# Mirror 유니티 오픈소스 네트워크 라이브러리 https://github.com/MirrorNetworking/Mirror/tree/masterhttps://medium.com/wardgames/unity-%EB%A9%80%ED%8B%B0%ED%94%8C%EB%A0%88%EC%9D%B4-%EA%B2%8C%EC%9E%84%EC%9D%84-%EB%A7%8C%EB%93%A4%EA%B8%B0-%EC%9C%84%ED%95%9C-mirror-mirage-%EC%86%8C%EA%B0%9C-a74b58bc115f# 유니티 헤드레스 서버, 데디케이트 서버 유니티 렌더링 관련 처리를 제거한 서버용 클라이언트 # 개발일지오늘은 늦잠자서 점심먹고 공유오피스에 1시반쯤 도착 도착해서 게임잡 살펴보고 게임 서버 관련 게시글..
-
20250516 개발일지. 소켓 관련 게시글 읽기 6.개발일지/C# 채팅 프로그램 2025. 6. 11. 14:03
# Socket Receive 메소드 관련receive 작업에서 버퍼 비우기는 수동으로 한다 # 소켓 커널 구조 https://brewagebear.github.io/linux-kernel-internal-3/#step-2-%EC%BB%A4%EB%84%90-%EC%BD%94%EB%93%9C%EB%A1%9C-%EC%95%8C%EC%95%84%EB%B3%B4%EB%8A%94-tcp%EC%99%80-%EC%86%8C%EC%BC%93
-
20250515 개발일지. 소켓 관련 게시글 읽기 5.개발일지/C# 채팅 프로그램 2025. 6. 11. 14:01
# 락스텝 알고리즘 http://yoonbumtae.com/?p=4224# Dns.GetHostAddresses Dns.GetHostAddresses 는 윈도우에 설정된 DNS서버에서 IP를 가져옴. 페스트파이브에서는 kt인터넷을 사용하는지 ipconfig /all에서 KT DNS서버 ip가 나옴 nuget에서 특정 DNS서버에서 쿼리할 수 있는 라이브러리가 있음 # AddressFamily Socket 매개변수 AddressFamily InterNetwork가 ipv4 InterNetworkv6 가 ipv6