P2P VE CLIENT UNKNOWN HEADER SYSERRI ARKAPLANI

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 70

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba;

Bir süredir oyuncularımı rahatsız eden client kapanma sorunları hakkında çalışmalar yapıyorum.
Bu sorunların kökeni; herhangi bir client crashı değil, clientin server tarafından yollanan paketleri düzgün bir şekilde yakalayamamasında yatıyor.

Paket yapısında oynama yapılmamış server fileslerde ve daha fazlasında, bu başarısızlık sonrasında client çözümü, kendini
PostQuitMessage(0) kullanarak kapamakta buluyor:
194270_370e92513a323d114eb99f1054816f4b.png


Çözüm her ne kadar ilk bakışta gereksiz görünse de, clientteki paket buffer yapısının bu noktadan sonra bozulduğu ve kendisini hali hazırda düzeltemeyecek yapıda olduğu için, bu çözümü şuanlık en iyi çözüm olarak yorumladım.

Bu çözüme benzer olarak, P2P yoluyla iletişim kuran gameler arasında da herhangi bir tanımlanamayan header bulunduğunda, yani game syserr lerimize UNKNOWN HEADER düştüğünde, gameler çözümü birbiri arasındaki soketlerini kapatmakta buluyor.
Fakat buradaki fark; P2P konusunda yaşanan header tanımsızlığı, en basitinde packet_info.cpp'de tanımlanmayan headerlar ya da büyük paketli buffered paketler sayesınde oluşuyor olmasıdır.

Zaman zaman yaşadığımız P2P kopmaları da tam olarak gamelerimize düşen UNKOWN HEADER syserrlerinden sonra yaşanıyor. Neyseki P2P kopmalarının analizi konusunda çözüm genelde basit. En son yollanan yüksek boyutlu paketleri loglamak ve boyutu indirgemek bu iş için yeterli bir çözüm.

Clientim için yaptığım çalışmalarda, kapanma sorunu yaşayan oyuncular için, serverden teslim aldıkları son paketleri loglayacak bir sistem yazdım.
Bu konuyu açmamdaki amaç, konuyla ilgilenenlerle analizlerimi paylaşıp çözüm için sizlerle bilgi paylaşımı yapmaktır.

Oluşturduğum log sistemindeki amaç, kapanmadan hemen önce servere bilgi gönderilip, oyuncunun soketine son yollanan 10 paketin server tarafında loglanmasındır:

194272_6793e994fc405dc57f9c53424fe6b91b.png


Server tarafında saklanan bazı logları paylaşıyorum:

194274_edef5addade65cba6cb919cc841ac66b.png


Sorunu yaşayan son oyuncuların aldığı headerler gösteriyorki, spesifk olarak son yollanan header bu soruna sebep olmuyor. Başka bir deyişle spesifik bir header bu soruna sebep olmuyor, ya da oluyor mu?

Bu gözlemlerden sonra, hatayı clientlere yollanan büyük boyutlu paketlerde aradım. Bu paketlerin en büyüğü 15814 byte ile offline shop sistemimdeki bir yapıydı.
Ve bu boyutun gerçekten sorun yaratacağını düşünmeyerek farklı bir yorum aramaya başladım. Bir şey veya bir şeyler, clientteki paket sequence yapısını sekteye uğratıyor olmalı diye düşündüm. Yani aslında sorun dolaylı olarak gerçekleşiyor gibi görünüyor.

Ekstra olarak, code base'mde herhangi spesifik bir paket yapısının yanlış tanımlandığını düşünmüyorum. Bu düşüncemin sebebi de bu sorunu yaşayan kitlenin tüm oyuncularım değil yaklaşık %15'lik bir dilimin olması. Client rapor loglarında ismi geçen birkaç oyuncuma ulaştım ve bu sorunu oyunda herhangi bir aksiyom yaşamadan yani ilk girişte login ekranında bile yaşadıklarını söylediler.

Bu biraz kafa karıştıcı. Hala sorunun kaynağını aramaktayım. Herhangi bir tecrübesi olan, bir şeyler paylaşmak isteyenleri konuya katkı yapmaya davet ediyorum.
P2P VE CLIENT UNKNOWN HEADER SYSERRI ARKAPLANI

Metin2 özel sunucu geliştirme sürecinde geliştiricilerin karşılaştığı yaygın hatalardan birisi P2P ve CLIENT UNKNOWN HEADER SYSERR sorunudur. Bu hata genellikle sunucu-client iletişimi sırasında meydana gelir ve hem oyun core hem de client src tarafında yapılabilecek ayarlamalarla çözülebilir. Bu yazıda bu hatanın temel nedenlerini, oluşum arka planını ve çözüm önerilerini detaylıca ele alacağız.

Hatanın Genel Tanımı
P2P hatası genellikle channel sunucuları arasında bağlantı kurulamadığında ortaya çıkar. CLIENT UNKNOWN HEADER SYSERR ise genellikle client tarafında paket başlıklarının tanınamaması sonucunda meydana gelir. Her iki durum da oyunun başlatılması veya belirli sistemlerin çalışması sırasında.disconnectlara yol açabilir.

Olası Nedenler ve Arka Plan
Metin2 server src tarafında P2P hatası genellikle game server ve auth server arasında bağlantı kopukluğundan doğar. Sunucular arası haberleşme için tanımlanan IP adresleri, portlar ya da protokol uyumsuzlukları bu hatayı tetikleyebilir. Aynı zamanda db core[/BR] ile ilgili yapılandırmalar da hata sebebi olabilir.

Client src tarafında ise CLIENT UNKNOWN HEADER SYSERR hatası genellikle uiscript dosyalarında, py root dosyalarında veya pack sisteminde yapılan yanlış tanımlamalardan kaynaklanır. Paket yapısı doğru tanımlanmazsa client, sunucudan gelen veriyi doğru şekilde yorumlayamaz ve bu hata ile karşılaşılır.

Çözüm Yöntemleri
Sunucu Tarafı
Game server yapılandırmasında P2P bağlantısı için doğru IP ve port tanımlarının yapılması gerekir. Martysama gibi popüler sistemlerde bu ayarlar genellikle config dosyalarında yer alır. Ayrıca, C++ source edit işlemleri sırasında P2P bağlantısını etkileyebilecek değişiklikler dikkatli yapılmalıdır.

Client Tarafı
CLIENT UNKNOWN HEADER SYSERR hatasını çözmek için Python GUI sistemleri kontrol edilmeli, Py GUI ile çalışan sistemlerde header tanımlamaları yeniden kontrol edilmelidir. Paket yapısı ile ilgili tüm script dosyaları uyumlu olmalıdır.

Sonuç
P2P ve CLIENT UNKNOWN HEADER SYSERR hataları, Metin2 özel sunucu geliştirme sürecinde sıkça karşılaşılan sorunlardır. Bu hataların çözümünde core, server src, client src ve db yapılarının doğru entegrasyonu büyük önem taşır. Geliştiricilerin bu hatayı çözmede öncelikle yapılandırmaları kontrol etmesi ve gerekirse source edit işlemlerini gözden geçirmesi gerekir.


BACKGROUND OF P2P AND CLIENT UNKNOWN HEADER SYSERR

Metin2 private server development process involves encountering common errors such as P2P and CLIENT UNKNOWN HEADER SYSERR. This error usually occurs during server-client communication and can be resolved with adjustments made on both the game core and client src sides. In this article, we will examine the main causes of this error, its background, and solution suggestions in detail.

General Description of the Error
P2P error typically arises when connection cannot be established between channel servers. CLIENT UNKNOWN HEADER SYSERR occurs when packet headers are not recognized properly by the client side. Both cases may lead to disconnections during game launch or while specific systems are running.

Possible Causes and Background
On the Metin2 server src side, the P2P error generally stems from connection issues between game server and auth server. Misconfigurations regarding IP addresses, ports, or protocol mismatches used for inter-server communication can trigger this error. Additionally, configurations related to db core may also cause this issue.

On the client src side, CLIENT UNKNOWN HEADER SYSERR typically results from incorrect definitions made in uiscript files, py root files, or within the pack system. If the package structure is not defined correctly, the client fails to interpret data sent from the server properly, resulting in this error.

Solution Methods
Server Side
In game server configuration, correct IP and port settings must be set for P2P connections. In popular systems like Martysama, these settings are usually located in config files. Also, changes made during C++ source edit processes that might affect P2P connections should be handled carefully.

Client Side
To resolve CLIENT UNKNOWN HEADER SYSERR, Python GUI systems must be checked; header definitions in Py GUI based systems should be reviewed again. All script files related to the package structure must be compatible.

Conclusion
P2P and CLIENT UNKNOWN HEADER SYSERR errors are frequently encountered during Metin2 private server development. Correct integration of core, server src, client src, and db structures is crucial in resolving these errors. Developers should first check their configurations and if necessary review their source edit operations.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt