개발일지/C# 채팅 프로그램
20250521 개발일지. 버그 수정 및 코드 최적화
박준희
2025. 6. 12. 13:33
728x90
# 개발일지
오늘도 점심쯤 시작
## 버그 수정
버퍼 클리어 없이 재사용해서 전송했더니 첫 전송보다 작은 데이터 전송일 경우 이후 바이트에 이전 데이터가 남아 같이 전송됨.
한글 입력 시 해당 에러남 -> 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.EncoderReplacementFallback'. (Parameter 'bytes')'
## Connector, Listener 분리작업 시작
Connector와 Listener 다루는 소켓 개수 차이 및 인수 차이 존재
Listener에서는 accept소켓 하나와 SocketAsyncEventArgs 인수 여러개, 백로그 설정 등으로 Accept 작업 진행
ConnectAsync를 호출하는 객체와 saea 인수 ConnectSocket은 같은 객체
하나의 포트는 하나의 소켓만 리슨이 가능 -> 서버 두개 키면 에러 발생
AcceptAsync 병렬호출 시 머신 코어 x2~4 가 적당
Connector 작성 완료
728x90