quic ..
reliable udp를 개발하려고 예제는 많이 만들었지만 실제로는 어택도 무시하지 못하여서 결과적으로 quic을 따르는 것이 맞겠다는 판단이 생겼는데요.
quic 라이브러리를 가져와서 사용할까 싶었는데 안드로이드에는 복잡하게 연동을 하여야 하여서 그냥 일부분을 직접 구현한 다음 각각에 언어로 모듈을 만들자고 c#으로 우선 시작을 햇어요. c#은 마샬링을 쓰거나 이케이케 이상한 기법을 써야하여서 가장 성가시다고 보면 될 것이어요. 코틀린도 비슷한데 구조상 비슷한 구현을 따르면 이케이케 비슷한 기능을 구현할 수 있겠고 c++는 쉬워요. 강제 캐스팅에 제약이 없다시피 하여서 이쪽은 고민이 없어요.
일찍 일어나서 작업을 이어하였는데 다른 사이드프로젝트를 건드리다 보니깐 quic은 한 개도 못 건드렸어요. 망했쩌 ..
public void Read(ReadOnlySpan<byte> bytes) {
switch(bytes[0]) {
case 0b11000000: {
var header = new LongHeader();
LongHeaderListener.Invoke(out header);
}
break;
case 0b11010000: {
var header = new LongHeader();
LongHeaderListener.Invoke(out header);
}
break;
case 0b11100000: {
header = new LongHeader();
}
break;
case 0b11110000: {
header = new LongHeader();
}
break;
case 0b01000000: {
header = new ShortHeader();
}
break;
default: {
}
break;
}
}어제 여기까지 건드리던 부분 같은데 대충 .. 닷넷에서 박싱언박싱을 피하고 힙 대신 스택에 할당되어 처리하도록 만들자고 이케이케 보다가 자러갔어요. 오늘 시간은 왜 이렇게 빨리 흘러간 것인지 몰라요. 정말 슬프빈다.
