개발바닥곰발바닥
반응형
[C#] 소켓 통신시 Byte -> String 에서 널(\0)문자 제거하기
TCP&IP 2021. 11. 23. 11:21

C#으로 TCP 소켓 통신 구현 중에 클라이언트에서 보낸 메시지를 byte로 읽어와 string으로 변환 후에 Split 함수를 이용해서 나누어 쓰는 로직을 구현하고 있었는데 결과 값이 이상하게 나와서 값을 확인해보니 byte는 1024 바이트인데 그걸 string으로 변환 후에 Split 하니 Split 된 문자열 배열의 마지막 원소에 \0으로 끝이 꽉 차있어서 결과가 이상하게 나온 것을 알게 되었다. 찾아본 결과 이런 경우 해결 방법은 굉장히 간단했는데, 그냥 Trim 함수로 끝에 널 문자를 모두 제거해주면 된다. for (int i = 0; i < 1024; i++) bytes[i] = 0; net = tcp.GetStream(); //네트워크스트림 net.Read(bytes, 0, bytes.Le..

반응형