Arkadaşlar yazdığım bir TCP server'ın clientlarıyla senkronize olabilmesiyle ilgili şöyle bir problemim var. Elbette ki serverla clientların tarih saat bilgileri birbiriyle tam tutmaz. Ancak server connection gerçekleştiğinde kendi tarih saat bilgisini milisaniyeye kadar hassas bir şekilde gönderebilir ve bu sayede server ve client senkronize olabilir. Client bir event gerçekleştiğinde o eventi servera yollarken serverın saatine göre ayarlayabilir ve bu sayede server packet delaylerini hiç önemsemeden interpolasyonlarını düzgün bir şekilde yapabilir.
şimdi benim derdim şu. Server timer bilgisini clienta ilk gönderdiğinde de bir packet delay oluyor. Eğer bu delayi ölçmeyi başarabilirsem pakette gelen değere bu delay değerini ekler ve senkronu başarılı bir şekilde yapmış olurum. Ancak ne yazık ki bunu nasıl yapacağımı bulamadım. Bunu yaklaşık olarak yapmak için gönderdiğim pakete bir yanıt alıp aradaki süreyi ölçebilir ve tahmini olarak bu süreyi ikiye bölebilirim. Ama bu ne derece gerçekçi bir sonuç verir açıkçası bilemiyorum. Çünkü server yoğun olduğu zaman response delayleri de işin içine girecektir. Ayrıca clientın servera ulaştığı zamanla serverın clienta ulaştığı zaman tam olarak eşit olmayacaktır.
Sanırım bu işi çözmenin en makul yöntemi yukardakine benzer tahmini bir hesaplama yapıp daha sonra kalibrasyonlarla timerları tam olarak senkronize etmek. Bu konuda fikirlerim var ve çok iyi sonuç verebilirler diye umuyorum. Ama bu işlere girişmeden sizlere bir danışayım dedim. Biliyorum ki aranızda bu konularda çok tecrübeli isimler var. Doğru yolda mıyım?
Server-Client timer synch