P2P Networking Bağlantı Problemi
-
Bir arkadaşımla küçük bir oyun projemiz var. Oyun online olarak 2 kişiyle oynanıyor. Bu iş için küçük bir VPSimiz var.
VPS e çok yük binmesin istiyoruz bu nedenle oyunu oynayan iki kişiden birinin oyunu host etmesini istiyoruz.
Bağlantı işlemleri şöyle gerçekleşiyor.
-Oyunu oynayanlar server a bağlanıyor.
-Server yeterince oyuncu varsa bir clientı host olarak seçiyor ve oynayacak 2 oyuncunun clientlarına da
oyunu host edip etmeyecekleri gönderiliyor.
-Gerekli bilgileri alan clientlar serverdan bağlantısını koparıyor ve aralarında yeni bir bağlantı kurup oyuna başlıyorlar.
Bunların hepsini localhost ile denediğimiz zaman hiçbir sıkıntı yok. Fakat ne zaman clientlara external ip leriyle bağlanmaya çalışsak
connection refused hatası alıyoruz.
Daha rahat anlaşılması için yukarıdaki resimde mavi oklar sorun yaşadığımız bağlantıyı gösteriyor.
Yaptığım araştırma sonucu bu portların modem tarafından forward edilmediği için bağlantı kuramadığımı sanıyorum.
( firewall dan izin vermeyide denedim)
En basit çözüm modemden port forwarding i açmak olabilir fakat burdaki başka bir sorun ise
2 kişiden biri host olacağı için her oynayacak kişiye modemden ayar yaptıramayız.
Hole punching i araştırdım fakat anlaşılır biçimde anlatan bir kaynak bulamadım.
Tavsiyelerinizi bekliyorum bu sorun için. Örrnek Java kodu varsa süper olur ( ben bulamadım :D ) library de olabilir