|
답변 감사드리고요..
크게는 10만 적게는 1만바이트 정도의 패킷이 연달아 오는 경우가 있는데요.. 토탈 3메가 정도 됩니다..
서버에서 그 이상 안보내게 처리를 하고 있는데, 현재까지로는 내부 테스트에서 잘리는 경우는 없었거든요..
만약 잘리는 경우가 생기면 예외처리에서 time out이 돌려지는 건지요?
time out 에러가 나면 다시 처음부터 받아야 하는건지.. 아니면 일부패킷을 받기 때문에 저장해 뒀다가 그 다음부터 받아야하는건지 모르겠네요..
이런 상황을 만들 수가 없어서 테스트가 안되네요.. 흠..
nansama 님이 쓰신 글 :
: 블로킹기능은 한개의 패킷을 수신할 때까지 TIME_OUT 시간 이내에서 대기 한다는 뜻이지
: 특정 사이즈를 모두 수신 할 때까지 기다리는 기능이 아닙니다.
:
: 패킷은 공유기나 라우터의 MTU(Maximum Transmission Unit) 사이즈 이내에서 편의적으로 짤려서 옵니다.
: 보통 MTU가 1500 바이트 보다 작기 때문에 그보다 큰 데이터를 한번에 수신 하는것은
: 공유기나 라우터를 한개라도 거치는 환경에서는 불가능 합니다.
:
: 따라서 인디도 TCP나 UDP 레벨에서는 긴데이터는 잘려서 오기 때문에 여러번 수신해야 할 것입니다.
: < 추가 :다만 자동으로 패킷을 여러번 송수신 해주는 TCPClient.IOHandler.WriteFile 이나 LargeStream 관련
: 함수를 사용하면 자체적으로 한번에 보내는것 처럼 구현할 수 있어 보입니다.>
:
: 용맨소녀 님이 쓰신 글 :
: : 잘리지 않을 것 같은데.. 지금까지 잘리지 않는다고 생각하고 썼고요..
: :
: : 100% 절대 잘릴 일이 없는건가요? 여기에 대해선 잘 모르겠어요..
|