LIst<구조체> 형태의 패킷을 보내는 방법이 있나요?
897
작성한 질문수 9
List<구조체> 형태를 패킷으로 보낼려고 하는데 BufferWriter부분에서 List<구조체> 데이터를 쓸때 엑세스 위반의 오류가 나오게 됩니다.
List<구조체> 형태의 패킷을 보내는 방법이 있나요?



답변 2
0
강사님 정말 감사합니다..
구조체 패딩 문제 였내요...
pragma pack을 사용하니 해결 되었습니다. 감사합니다 !!!
1
ㅎㅎㅎㅎㅎㅎ 그렇군요 축하드립니다.
저도 한 번 이쪽에서 아주 크게 데인 적이 있어서 남일 같지가 않군요 -_-
헤딩을 오래한 만큼 앞으로 두고두고 기억에 남을겁니다.
그럼 힘내세요
0

이렇게 하면 당연히 큰일납니다.
list, vector 모두 동작 할당된 힙 메모리의 주소를 잠시 들고 있는 것이라
반대쪽에 그런 주소를 보내줘봤자 이해를 못합니다.
우선 bw << players.size() 로 몇 명이 있는지를 보내주신 다음
플레이어 수만큼 for문으로 bw << struct데이터를 넣어주시면 됩니다.
그 부분을 반대쪽에서 파싱해서 size, struct (xsize개)를 꺼내쓰면 되겠죠
0
강사님이 말씀하신대로
리스트의 길이를 보내준다음 구조체의 데이터를 bw로 넣어서 클라이언트가 파싱 하는데 클라이언트는 리스트의 길이를 받아올때 이상한 값을 받아오고있어서 질문 드립니다...


1
breakpoint를 걸어서 보내는 쪽 데이터를 확인해보시고 (size 포함)
breakpoint를 걸어서 클라에서도 받는 쪽 데이터를 하나씩 확인해보세요.
위 내용만으로는 저도 원인을 알 수 없습니다.
메모리를 까보는 것도 필요할 수 있습니다.
그런데 C# <-> C++ 연동인건가요?
그러면 더 조심할게 많아집니다. (struct Player의 패딩 문제 등)
컨텐츠 레이어 C++ vs C#
0
3
0
writeLock을 잡을때 꼭 empty 상태여야하는 이유?
0
29
2
Memory Pool에서 오버플로우 질문입니다.
0
70
2
포토폴리오 및 진로 관련하여 고민입니다.
0
124
1
포토폴리오 관련 고민입니다.
0
64
1
실무에서도 alloc, 스마트포인터 등을 구현해서 쓰는지 궁금합니다.
0
85
2
성능 테스트 결과
0
105
2
게임 서버 Stateful, Stateless 진로 고민
0
127
1
WaitOnAddress와 Sleep의 차이 질문
0
83
1
궁금한거 있습니다.
0
83
2
JobTimer 구동 스레드
0
107
2
TryPop() 동작 관련 질문
0
81
1
로드맵 C#서버 C++서버 방향성 질문
0
151
2
스레드 id를 출력할떄 메인스레드 id도 출력되나요?
0
73
1
생명주기를 위한 의도적 복사
0
87
2
락프리의 실무에서 사용 질문
0
143
2
32bit threadID와 16비트 상위 WriteFlag에 대해
0
103
2
mutex와 sleep 차이점
0
118
1
실무에서는 어떠한 코드 스타일을 사용하는지 궁금합니다
0
156
2
Stomp Allocator의 Release함수에 대한 질문입니다.
0
97
1
공부법 관련해서
0
184
2
MakeShared 함수 관련
0
114
1
지금까지 서버코어에서 만든 내용에 대해 궁금한 점이 있어서 질문 드립니다.
0
144
2
운영체제관련 질문입니다
0
132
1





