프로그래밍
C# 구조체 파싱하여 사용 하는 예제
준이바라기얍
2021. 8. 9. 15:47
반응형
통신 시 구조체 형태로 보내게 되면 받는 쪽에서 파싱하여 사용 하게 됩니다.
아래 소스도 특정 구조체를 이용한 통신 시 수신부에서 파싱하는 것에 대한 예제입니다.
참고하시어 사용 바랍니다.
public static clsMsg_PType Division_PType(string Data, string IP, int Port)
{
try
{
clsMsg_PType Result = new clsMsg_PType();
string[] arr_sTemp;
string DataTemp = Data.Substring(1, Data.Length - 2);
if (DataTemp.Substring(DataTemp.Length - 1, 1) == "@")
DataTemp = DataTemp.Substring(0, DataTemp.Length - 1);
arr_sTemp = DataTemp.Split('@');
if (arr_sTemp.Length >= 2)
{
Result.CLIENT_IP = IP;
Result.Port = Port;
//MsgID
Result.MsgID = Convert.ToInt32(arr_sTemp[0].Trim());
//Msg CMD
Result.CMD = arr_sTemp[1].Trim(); //2018.08.06 moontari 수정. (ENUM -> string)
Result.SUBCMD = int.Parse(arr_sTemp[2].Trim());
//Data영역에 값이 있는 Msg와 없는 Msg를 구분하기 위해서
if (arr_sTemp.Length >= 4)
{
//Msg DATA
//Result.DATA = arr_sTemp[3].Trim();
string[] arrDataTemp = arr_sTemp[3].Split(',');
for (int nLoop = 0; nLoop < arrDataTemp.Length; nLoop++)
{
string[] arrDataTemp2 = arrDataTemp[nLoop].Split('=');
Result.SetKeyValue(arrDataTemp2[0], arrDataTemp2[1]);
}
}
else
{
//Result.DATA = string.Empty;
}
}
else
{
Result = null;
}
return Result;
}
catch
{
return null;
}
}
}
반응형