티스토리 뷰
반응형
[c#/wpf/unity]byte를 object(class 객체)로 object를 byte로 변환하기
udp 통신이나, tcp통신을 포함한 통신 및 패킷을 주고받다보면 객체를 byte화하여 정보를 주고 받는 일이 빈번하다.
그럴경우 손쉽게 객체를 byte화하여 serialize/deserialize 처리를 할 수있다.
public static object ByteToObject(byte[] buffer)
{
try
{
using (MemoryStream stream = new MemoryStream(buffer))
{
BinaryFormatter binaryFormatter = new BinaryFormatter();
stream.Position = 0;
return binaryFormatter.Deserialize(stream);
}
}
catch (Exception exception)
{
Console.WriteLine(exception.ToString());
}
return null;
}
public static byte[] ObjectToByte(object obj)
{
try
{
using (MemoryStream stream = new MemoryStream())
{
BinaryFormatter binaryFormatter = new BinaryFormatter();
binaryFormatter.Serialize(stream, obj);
return stream.ToArray();
}
}
catch (Exception exception)
{
Console.WriteLine(exception.ToString());
}
return null;
}
이렇게하면 손쉽게 파싱이 되는데 다만 serialize를 통한 동기화가 진행되야하기때문에 클래스 객체에 [serialize]만 붙여주면된다.
[Serializable]
class tb_common
{
public string name { get; set; }
public string code { get; set; }
}
이런식으로 붙여줘서 통신하면 손쉽게 해결이된다.
#c# #winform #unity #serialze #deserialize #object #class object #byte #bytetoobject #objecttobyte #변환
반응형
'c#' 카테고리의 다른 글
[wpf/c#/unity/winform] 변수 이름 가져오기 (0) | 2021.11.25 |
---|---|
[c#/wpf/unity/winform] 고유한(유니크) 아이디 생성 함수 구현 (0) | 2021.11.24 |
[c#/unity/winform/wpf] 문자열 변수 간단히 출력($ 활용) (0) | 2021.11.18 |
[c#/unity/winform/wpf] generic 타입 list인지 확인하기 (0) | 2021.11.17 |
[1분해결] c#에서 ffmpeg 동적으로 사용하기 (0) | 2021.10.27 |
댓글
반응형