Yardım Metin2 Client 64 Bit Hakkında

  • Konuyu açan Konuyu açan hasanmacit
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 13
  • Gösterim Gösterim 148
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

hasanmacit

UsProject / discord: hasanmacit
Süper Moderatör
Geliştirici
Yardımsever Üye
Mesaj
4.579
Çözümler
192
Beğeni
4.279
Puan
1.850
Ticaret Puanı
6
sadece clienti 64 bite çekip server tarafını 32 bitte bıraksak ne gibi sorunlar yaşarız?​
 
Serverden gelen verilerin sorun yaratacağını düşünmüyorum. Ama servere giden veriler sorun yaratabilir.
Sonuçta her iki durum da aynı kapıya çıkıyor.
 
ne gibi sorunlardan bahsediyoruz
 
Client: 64bit
Server: 32Bit

32 bitlik veri 64bit içinde depolanıp işlenebilir. Yani Server->Client : OK
Ancak 64bitlik veri 32bit tarafında tam anlamıyla işlenemez. Client->Server : Error

Çok basit bir yaklaşımla konuyu ele aldım. Ama muhtemelen sorunlar çıkaracaktır.
 
sadece veri tipi dönüşümüyle ve liblerin 64 bite çekimi ile 64 bit olmuş olur mu yoksa başka şeylerde yapmak gerekiyor mu? (buildden sonra çıkabilecek hatalar (örn: protoreader hatası) değil 64 bit için değiştirilmesi gereken yer bakımından sorulmuş bir soru)
 
Dikkat edilmesi gereken çok konu var
İlk aklıma gelen;
int veya size_t gibi türlerin 32-bit ile 64-bit arasında boyut farkı olabilir; int32_t, int64_t, uint32_t, ve uint64_t gibi kesin boyutlu veri tiplerini kullanmak durumu çözebilit satır satır bakmak lazım.

Sunucu client paketleşmesini de incelemek gerekebilir, adreslemelerde biri 2 üzeri 32 diğeri 2 üzeri 64 bellek adresliyor çünkü
 
En basit örnek 32 bitlik bir adreslemede packet boyutları 4 byte olacakken, 64 bitlik bir adreslemede bu 2 katı olan 8 byte'a çıkacaktır. Yani olmaz Hasan'ım yanlış düşünüyorsun. Yaparken sağlıklı olması açısından iki side'ı da değiştirmen gerekiyor.
 
Son düzenleme:
En basit örnek 32 bitlik bir adreslemede packet boyutları 4 byte olacakken, 64 bitlik bir adreslemede bu 2 katı olan 8 byte'a çıkacaktır. Yani olmaz Hasan'ım yanlış düşiünüyorsun. Yaparken iki side'ı da değiştirmen gerekiyor.
yaptığım için demiyorum öğrenmek için sordum sadece :D bilgiye açız açç
Dikkat edilmesi gereken çok konu var
İlk aklıma gelen;
int veya size_t gibi türlerin 32-bit ile 64-bit arasında boyut farkı olabilir; int32_t, int64_t, uint32_t, ve uint64_t gibi kesin boyutlu veri tiplerini kullanmak durumu çözebilit satır satır bakmak lazım.

Sunucu client paketleşmesini de incelemek gerekebilir, adreslemelerde biri 2 üzeri 32 diğeri 2 üzeri 64 bellek adresliyor çünkü
yapacağımdan değil ya öğrenme amaçlı belki girişiriz mesela o manada
 
client packet kısmında statik veri tipi kullanıldığı taktirde sıkıntı olmayacaktır.

hatta size_t, ssize_t, long ve unsigned long türleri haricinde bir değişiklik yapılması da gerekmez.
 
Geri
Üst