inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

TCP 서버 질문입니다.

173

snu

작성한 질문수 36

0

Client가 100바이트씩 10번 보내어 서버가 1000바이트씩 읽는 것에대해서는 이해를 했는데요. (데이터의 경계가 없기 떄문)
서버의 recv 함수의 3번째 인자로 1000바이트를 설정할 경우 1000바이트를 TCP recv 버퍼에서 응용프로그램 버퍼에 복사할때까지 블로킹 되는 걸로 알고있는데 recv 함수의 3번째 인자를 1000으로 설정했어도 리턴값이 50바이트같이 1000보다 작은 숫자가 나올 수 있나요? 아니면 계속 1000바이트를 읽을때까지 블로킹 되는 것인가요?

network windows-server MMORPG

답변 1

1

Rookiss

상대방이 몇 바이트를 보낼지 모르는데,
원하는 사이즈 받을때까지 대기하는 것은 말이 안 됩니다.

recv의 3번째 인자는 버퍼의 최대 크기고
이 최대 사이즈를 적어주면 실제로 받은 데이터 크기를 따로 뱉어줍니다.
recv 함수의 반환값의 의미를 문서에서 찾아보시기 바랍니다.

https://docs.microsoft.com/en-us/windows/win32/api/winsock/nf-winsock-recv

0

snu

감사합니다 영상에서처럼 질문전에 문서를 더 찾아봐야겠네요

writeLock을 잡을때 꼭 empty 상태여야하는 이유?

0

63

2

Memory Pool에서 오버플로우 질문입니다.

0

94

2

포토폴리오 및 진로 관련하여 고민입니다.

0

172

1

포토폴리오 관련 고민입니다.

0

91

1

실무에서도 alloc, 스마트포인터 등을 구현해서 쓰는지 궁금합니다.

0

107

2

성능 테스트 결과

0

117

2

게임 서버 Stateful, Stateless 진로 고민

0

147

1

WaitOnAddress와 Sleep의 차이 질문

0

98

1

궁금한거 있습니다.

0

92

2

JobTimer 구동 스레드

0

116

2

TryPop() 동작 관련 질문

0

86

1

로드맵 C#서버 C++서버 방향성 질문

0

162

2

스레드 id를 출력할떄 메인스레드 id도 출력되나요?

0

81

1

생명주기를 위한 의도적 복사

0

94

2

락프리의 실무에서 사용 질문

0

154

2

32bit threadID와 16비트 상위 WriteFlag에 대해

0

109

2

mutex와 sleep 차이점

0

133

1

실무에서는 어떠한 코드 스타일을 사용하는지 궁금합니다

0

167

2

Stomp Allocator의 Release함수에 대한 질문입니다.

0

102

1

공부법 관련해서

0

190

2

MakeShared 함수 관련

0

119

1

지금까지 서버코어에서 만든 내용에 대해 궁금한 점이 있어서 질문 드립니다.

0

152

2

운영체제관련 질문입니다

0

144

1

send하려는 데이터 크기가 크면 memcpy에서 문제가 발생할 것 같습니다.

0

125

2