질문드립니다.
이런식으로 패킷을 new나 malloc으로 메모리를 안잡고
보내는 경우에도 나중에 memory fragmentation이 일어날 수 있나요?
패킷 변수가 스택메모리로 잡혀서 힙 메모리 문제가 안생길것 같은데
서버관련 책들을 보니 링버퍼 같은것들을 쓰더라구요. 문제가 없다면
굳이 링버퍼를 따로 쓰지 않았을텐데 하는 생각이 들어서 말입니다.
그리고 밑에 멀티패킷은 여러 패킷을 하나로 묶는 건데
로컬변수의 버퍼에다가 이어붙여서 보내는 식입니다.
예전의 프로젝트에서는 이런건 다 메모리로 잡아서 했던 기억이나서
이렇게 해도 괜찬은건지..(되기는 됩니다만 나중이 찝찝)
고수님들의 조언부탁드립니다.
Code: Select all
struct _PACKET_ {
unsigned short _id;
int _data;
};
void Test()
{
_PACKET_ packet;
packet._id= 1;
packet._data= 777;
NetworkLib->SendPacket(packet, sizeof(_PACKET_));
}
void Test2()
{
_PACKET_ packet;
packet._id= 1;
packet._data= 777;
_PACKET_ packet2;
packet._id= 10;
packet._data= 7770;
_MULTIPACKET_ multipacket;
char buffer[1024];
multipacket.AddPacket(buffer, packet);
multipacket.AddPacket(buffer, packet2);
NetworkLib->SendPacket(multipacket, multipacket.GetSize());
}