|
김성규 님이 쓰신 글 :
: 아제나 님이 쓰신 글 :
: : TWinSocketStream으로 동기 소켓에서 데이터를 100kb 정도 쏘아 보내는데요.
: :
: : 1024씩 100번을 쏘아 보내는데...
: :
: : LAN 환경에서는 60% 정도 날아가는거 같네요 -_-;;
: :
: : 원래 이런 버그가 있나요? -_-;;
: :
: : 원래는 TWinSocketStream.Write( 버퍼, 102400 ); 이렇게 해도 데이터가 모두 안전하게
: :
: : 날아가야 할텐데요.
: :
: : 1024씩 쪼개서 보내는데도...
: :
: : Write가 바로 리턴을 해버리는군요 -_-;;;
: :
: : 그래서 받는 쪽에서는 비동기로 받는데, 약간 컴이 느려지거나 하면 -_-;;;
: :
: : 적으면 30% 많으면 60%까지 데이터가 날아가는거 같습니다.
: :
: : 평균적으로 대략 60kb 정도 받더군요. -_-;;;
: :
: : 윈도우 I/O가 못따라오는건지?
: :
: : TWinSocketStream의 버그인지..
: :
: : 누가 좀 알려주세요 ㅠㅠ
: :
: : 해결 방법도 알려주시면 감사하겠사옵니다 ^^
: :
: :
: :
: : ps. 현재 임시로 1024 바이트 보내고 Sleep(10)을 줘서 해결중 -_-+
: :
: :
: :
:
:
: 돔말 : Write returns the number of bytes transferred.
:
: 전송된 바이트 수를 리턴한다.
:
: 돔말 : Write does not throw an exception if Count bytes are not written.
:
: 주어진 Count 가 다 보내지지 않아도 에러를 발생하지 않는다.
:
:
:
도움말 보니까 진짜 저런 내용이 ㅠㅠ
동기 소켓용 스트림에 흐름 제어를 프로그래머가 해야한다니 -_-++++++
비동기 소켓이랑 차이가 없네여...
왜 동기 쓰는거져?
비동기 소켓으로 바꿀랍니다...
|