私は小さなマルチプロトコル イメージ ストリーミング サーバーを (Python で) プログラミングしていますが、CPU 使用率が最大 150% になるマルチキャスト プロトコルを除いて、すべてのプロトコルが十分に機能します。
マルチキャスト コードは次のとおりです。
delay = 1./self.flux.ips
imgid = 0
lastSent = 0
while self.connected:
#self.printLog("Getting ready to fragment {}".format(imgid))
fragments = fragmentImage(self.flux.imageFiles[imgid], self.fragmentSize)
#self.printLog("Fragmented {} ! ".format(imgid))
# Checking if the delay has passed, to respected the framerate
while (time.time() - lastSent) < delay:
pass
# Sending the fragments
for fragmentid in range(len(fragments)):
formatedFragment = formatFragment(fragments[fragmentid], fragmentid*self.fragmentSize, len(self.flux.imageFiles[imgid]), imgid)
self.sendto(formatedFragment, (self.groupAddress, self.groupPort))
lastSent = time.time()
imgid = (imgid + 1) % len(self.flux.images)
UDP プロトコルも画像をフラグメントとして送信し、CPU 使用率の問題はありません。クライアントもこれらの画像を取得するためにある程度の待ち時間があることに注意してください。