2010-05-17 7 views
1

서버에서 여러 클라이언트로 인터넷을 통해 2400 보로 데이터를 스트리밍 할 응용 프로그램을 작성하고 싶습니다. 데이터는 각 클라이언트에 대해 동일 할 것이며 데이터 형식에 내장 된 체크섬이 있기 때문에 정확한 데이터 정확도가 100 % 필요하지 않기 때문에 데이터를 UDP 스트림으로 보내면됩니다. 반복하여 반복적으로 보내야한다.여러 클라이언트에 실시간 데이터 스트리밍

가장 좋은 방법은 무엇입니까? 나는 C로 서버를 작성하고 싶지만이 데이터를 전국 각지에서 수신 할 수있는 다른 클라이언트에게이 데이터를 가장 잘 전달하는 방법을 모른다.

필자는 일종의 가져 오기 명령을 사용하는 것과는 대조적으로 내 프로젝트에 대해 매우 까다로운 방식 인 것처럼 보이지만 가능하면이 방법을 선호합니다.

+0

어떤 운영 체제입니까? IPv4 또는 IPv6? 당신은 아마도'IP 멀티 캐스트' – nategoose

+0

리눅스/윈도우, 상관 없어요, 그리고 IPv4를해야합니다. 그래, 고마워. – AriX

답변

1

특히 클라이언트가 여러 디렉토리에있는 경우 유니 캐스트를 살펴볼 수 있습니다. 대역폭 요구가 적은 경우 특히 각 클라이언트에 데이터가있는 TCP 또는 UDP 트래픽을 보낼 수 있어야합니다. IP 멀티 캐스트는 서로 가까이있는 네트워크상의 노드 그룹에 가장 잘 작동합니다.

반복적으로 클라이언트 주소를 반복하고 데이터를 보내십시오. 데이터 속도를 제한하기 위해 루프 속도를 조절하십시오.

신뢰성 문제에주의하십시오. 정확성은 UDP의 유일한 문제가 아닙니다. 귀하는 귀하의 데이터가 접수되었음을 인정하지 않으며 주문에 대한 보증도 제공하지 않습니다.

데이터가 더 많거나 적은 이산 청크로 분할되므로 Baud가 실제로 적용되지 않습니다.

+0

맞아, 나는 인정을 필요로하지 않는다, 나는 단지 그것이 발송되기를 필요로한다. 그리고 baud까지는 속도를 다소 제한해야합니다. 데이터 자체가 2400 보오 (baud)로 나가야하는 것은 아닙니다. 분명 인터넷이 적용되는 것은 아닙니다. 문제는 데이터가 PC에서 문자 발생기로 2400 보오의 속도로 직렬 전송된다는 것입니다. 따라서 데이터를 너무 빨리 보내서 직렬 메시지를 오버로드하지 않아도됩니다. . 아마도 메시지들 사이에 1 초의 지연을 설정하기 만하면됩니다. – AriX

+0

유니 캐스트 (unicast)에 관한 한, 각 IP에 고유하게 데이터를 전송하는 것이 좋습니다. 그게 내가 끝내는 결과일지도 몰라. – AriX

+0

네, 각 IP에 개별적으로 데이터를 보냅니다. 내가 너라면, 유니 캐스트로 시작하고, 수면 지연으로 시작해서 거기에서 당신의 필요를 충족시키기 위해 조정할거야. – WhirlWind