|
멀티쓰레딩으로 돌아가는 운영체제에서... 정확한 동기적인 통신이 가능한가?
받을 때 윈도우가 다른 일로 바쁘면... 안되는 것이 당연할 것인데...
최대한 간격을 줄이는 노력만 가능하지 않을까 생각됩니다...
윈도우에서 그렇게 정확하게 주고받고 해본적이 없군요....
마이컴에서야 정확하게... 가능하지요... 명령한줄까지 계산을 하니...
혹 도스 같으면 가능하겠건만....
이쪽에 더 깊은 지식이 있는 분... 답변을 달아주세요....
저도 궁금합니다.... 감사합니다... 부산에서 월천.... 행복하세요...
기둥 님이 쓰신 글 :
: 프로젝트 중 수행중인데, 문제에 봉착해버렸습니다. ㅜㅜ
:
: 50ms 주기로 보드에 있는 TCP 클라이언트에서 PC에 있는 TCP서버에 1024 바이트 문자 배열을 송신합니다.
: 50 ms 통신 주기를 유지하는 것이 매우 중요합니다.
: 그런데, 수신하는 서버에서 멀티미디어 타이머를 이용해서 서버에서 수신 당시 시간을 측정 해보니,
: 50 ms 주기로 데이터가 들어 오기도 하지만, 50 ms 의 두배인 100 ms 근처에 두 개의 데이터가 들어 오기도 합니다.
: 물론 TCP이니 데이터는 정상적으로 수신하고 처리합니다.
: 송신하는 클라이언트는 50 ms 주기로 1ms 정도의 오차를 가지고 송신하는 것을 확인했습니다.
: 제가 생각하기에는 수신 버퍼에 데이터가 들어와서 잡혀 있다가 한 번에 처리하는 것 같습니다.
: 클라이언트가 PC일 경우에는 데이터 크기를 4096 바이트로 늘리면 50 ms 통신 주기를 유지할 수 있다는 것을 확인했습니다만,
: 보드에서는 4096바이트 데이터를 보내는 것이 불가능하네요.
: 그래서 PC에 있는 서버에서 무엇인가 작업을 해줘야 할 것 같은데,
: 머리털 나고 처음으로 소켓 프로그램을 작성하다 보니
: 뭘 어떻게 해야 할지 모르겠습니다.
: 소켓 프로그램 고수가 계시면 제발 도와주세요.
: 작은 힌트라도 알려 주시면 많은 도움일 될 것입니다.
:
: 사용한 컴파일러는 Boland Developer Studio 2006이고
: 컴파일러에서 기본제공하는 서버소켓과 클라이언트소켓을 사용하였습니다.
:
: 미리 감사드립니다.
|