Pro degilim ancak, Oyun sırasında udp, menü VS gibi Server komut gnderilmesi gereken ilerde tcp kullansan iş çzülür If my calculations are correct, when this baby hits eighty-eight miles per hour... you"re gonna see some serious shit.

Tekerleği baştan icat etmeye lüzum yok hocam. Neden mosquitto tarzı bir broker kullanmıyorsun Cehennemin dibine kadar yolum var daha.. || Nasılsa her yalnız kendine sürgündür Asmera unutma.

WebSocket kullanmalısın hocam. WebSockets, on the other hand, allow for sending message-based data, similar to UDP, but with the reliability of TCP. Sen hiç kaval çaldın mı?

TCP bunun için :) Uzun zamandır uğraşmadığım için neri niteliğinde yazıyorum. Her mesaj içinde mesaja ait bir tanımlama numarası oluşturup, bunu bir arttırırsan paketleri sıralı yollama zorunluluğundan kurtulabilirsin. Bylece atıyorum 11 nolu paket gitmedi ise 12, 13, 14... nolu paketi gnderebilir, sistemi 11 nolu paket gitsin diye bloke etmezsin. Maalesef, o paket nemli ve karşıya ulaştığı bilgisi lazımsa sonsuz dngüden başka yapacak bir şey yok. Paket kayıpları artarsa o zaman neden bu kadar paket kayboluyor diye araştırma yapabilirsin. İşte bu nedenlerden dolayı TCP kullanmak lazım:) zel bir uygulama olsaydı, rneğin birden fazla mobil modem ile veri yollama gibi, o zaman UDP çzüm daha mantıklı olabilirdi. Şu rfc'yi okumalısın: http://www.belgeler.org/rfc/rfc768.html Meraklılar için: http://www.belgeler.org/bgnet/bgnet_theory-twotypes.html Ilk basta TCP kullaniyordum sonrasinda UDPye gecis yaptim. UDPye gecme sebebimde online ve herkesin ayni anda oynadigi oyun oldugu icindi. Suan projede udp socket kullaniyorum. Tcpye gore gozle gorulur hiz farki var. Oynanis esnasinda saniyede 60-70 kez veri gonderiliyor. Bu kadar veriden 3-5i kaybolsun onemli degilde kullanici menudeyken Mac Ara veya Arkadaslik Istegi Gonder gibi verilerin iletilmemesi buyuk sıkıntı yaratiyor. Sabaha kadar bir cozum bulamazsam mecbur sonsuz dongude kontrol yaptiracagim. Onerin icin sagol. Linktekileride sabaha detaylica okurum.

Yorumlarınız için teşekkürler. Çoklu alıntıyı çzemediğim için buradan yazayım :) LoL tarzı oyunlar nasıl çalışıyor diye nceden bakmıştım. Menude TCP, oyunda UDP kullanıyorlar diye biliyorum. Belki benimde bu şekilde TCP ve UDP bağlantısı kullanmam gerekirdi. Network konusunu çok fazla araştırmadan bir acemilik yapıp projeye giriştim. Şuan projenin sonuna geldim ve yeni bir şey eklemek için 1-2 günüm dahi yok. Bu yüzden geçici olarak ilk mesajda yazdığım sistemi ekleyip projeyi teslim ettikten sonra muhtemelen menu kısmını TCP ile yaparım.

TCP bunun için :) Uzun zamandır uğraşmadığım için neri niteliğinde yazıyorum. Her mesaj içinde mesaja ait bir tanımlama numarası oluşturup, bunu bir arttırırsan paketleri sıralı yollama zorunluluğundan kurtulabilirsin. Bylece atıyorum 11 nolu paket gitmedi ise 12, 13, 14... nolu paketi gnderebilir, sistemi 11 nolu paket gitsin diye bloke etmezsin. Maalesef, o paket nemli ve karşıya ulaştığı bilgisi lazımsa sonsuz dngüden başka yapacak bir şey yok. Paket kayıpları artarsa o zaman neden bu kadar paket kayboluyor diye araştırma yapabilirsin. İşte bu nedenlerden dolayı TCP kullanmak lazım:) zel bir uygulama olsaydı, rneğin birden fazla mobil modem ile veri yollama gibi, o zaman UDP çzüm daha mantıklı olabilirdi. Şu rfc'yi okumalısın: http://www.belgeler.org/rfc/rfc768.html Meraklılar için: http://www.belgeler.org/bgnet/bgnet_theory-twotypes.html Olaylara karışmayın!

Hocam bence senin mimari yanlış. Udp socketi canlı yayın gibi çok nemi olmayan datalar için kullanman gerekiyor. Adam videoda 3-5 frame eksik almadı adama çok koymaz fark dahi etmez. Ama sen oyundan bahsediyorsun. Kesinlikle tcp olmalıydı. Evet udp daha hızlı ama senin verinde nemli. Trade off yapman lazım. Hızdan dün vereyim diye projeyi perte çıkarma :) CS go, lol, pub g gibi oyunlar tamamen tcp. Sen audio, video streaming yapmıyorsun udp kullanma. Yada 2 socket çalıştır. nemsiz dataları udp ile gnder nemli olanları tcp MhmdAlmz tarafından 04/Oca/20 07:19 tarihinde düzenlenmiştir Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

Şuanki socket sistemim güzel bir şekilde çalışıyor. UDP kullandığım için yapısı gereği bazen clientten servera veya serverdan cliente mesaj iletilmiyor. Bu iletilmeyen mesajları tekrar gndertmek istiyorum. En basit haliyle server tarafında şyle bir şey denedim ama pek sağlıklı olmadı. Serverda bir array ve fonksiyon oluşturdum. Bu fonksiyon sürekli olarak array içerisinde şyle bir denetleme yapıyorşuanki tarih - gnderilen mesaj tarihi büyükse 1 saniyeden mesajı tekrar gnder 1. Server mesajı gnderir2. Server gnderdiği mesajı arrayde tutar3. Clientten "mesajı aldım" bilgisi 1 saniye içerisinde gelmezse server mesajı tekrar gnderir.4. Client mesajı alır5. Client "mesajı aldım" bilgisini gnderir6. Servera "mesajı aldım" bilgisi gelirse arrayden o item silinir. Sağlıklı olmamasının sebebi bazen 5. adımdaki "mesajı aldım" bilgisi servera iletilemiyor. Bu sistemi client tarafınıda eklersem sürekli olarak veri gitti mi, mesajı aldım gitti mi diye dngüye gireceğini düşündüğüm için yolun başındayken fikirlerinizi alıp ona gre ilerlemek istiyorum. TCP kullan demeyin UDP'ye girdim bir kere artık dnüşüm yok