본문 바로가기

.NET.. 계열.

c++과 c#과의 패킷 전송시 '\0' 널문자 해결방법..

서버는 c++ 클라이언트는 c# 일경우 c++에서 


TCHAR[10] packet;
ZeroMemory(packet,sizeof(packet));
stringCchCopy(packet,sizeof(packet),_T("12345678"));


이런식으로 문자열은 packet이란 배열에 입력을 하게 되면.

packet[8] 과 packet[9]에는 0 값이 들어있게 됨니다.

이걸 패킷으로 전송해서 c#으로 받아 



string temp = Encoding.ASCII.GetString(packet);


이렇게 받게 되면. 결과값은 "12345678\0\0" 이렇게 출력이 됨니다... 이거 해결방법은 쉽게...
string temp = Encoding.ASCII.GetString(packet).trim('\0');