2010-07-01 15 views
6

Java sunucu teknolojilerini öğrenmek, bazı şeyleri açıklığa kavuşturmaya çalışmak. Java uygulamalarının birbiriyle iletişim kurmasına izin veren az sayıda teknoloji vardır. httpSunucu verileri müşteriye nasıl iletebilir?

2) Basit POST üzerinde

1) Web hizmetleri (DİNLENME/SOAP)/URLConnection üzerinde http kullanarak GET.

3)

4) RMI = Yuva + red5 = rtmp gibi Serile + Bazı Utilities

5) Farklı medya sunucularını Nesne veya

Bütün bu teknolojilerin

bir sunucu olduğunu varsayalım RTMPT Yuva uygulama ve istemci uygulaması. İstemci uygulaması sunucu adresini bilir ve çağrı başlatıcısı olmalıdır. Ve anladığım kadarıyla, sunucuya veriyi müşteriye aktarması için artık bir şey var, o sadece veriyi müşteriye cevap olarak geri gönderebiliyor. Ve eğer onlar sadece rollerini değiştirirse, bu durumda sunucu istemci IP'sini bilmelidir.

Ağ oyunlarının nasıl çalıştığını merak ediyorum. Her iki saniyede bir istemciden istek çekmeden sunucu ve istemci arasında bağlantı ve veri alışverişi mümkün mü ve sunucu istemci IP'sini bilmiyordu. Ben Comet ve diğer hacklerden bahsetmiyorum.

teşekkür ederiz

cevap

6

çoğu iki yönlü, kalıcı uygulamalar, ağ portu açıp açık tutmak. Sunucu, iyi bilinen bir bağlantı noktasını dinler ve bir istemci bu bağlantı noktasına bağlandığında, sunucuya kalıcı bir TCP bağlantısı alır. Bunun gibi bir bağlantı temel olarak iki yönlü bir "boru" dur, veri aynı anda her iki yönde de seri olarak akabilir. Bu boru açık olduğu sürece, sunucu istemciden mesaj dinler ve istemci sunucudan mesaj dinler.

TCP boruları için kullanılan ortak G/Ç API'ları, bağlantının her iki ucunun "uyandırılmasına" olanak tanır: Eşzamansız bir G/Ç isteği, OS veya I/O kitaplığı tarafından yönetilen bir iş parçacığından kayıtlı bir geri arama işlevini yürütür veya istemci/sunucu kendi iş parçacığını, veri mevcut olduğunda geri dönen bir "engelleme" çağrısıyla bağlar. Bu modelde yoklama veya yeniden bağlantı denemesi gerekli değildir, istemci ve sunucu hem veri bittiğinde "bilir" ve hemen harekete geçebilir.

+2

Ayrıca gerçek zamanlı ağ oyunları da aslında "aldatma" yaparlar. Her müşteri, dünyayı gerçek zamanlı olarak yerel olarak günceller ve sunucudan yeni bir güncelleme geldiğinde paylaşılan simülasyonu yeniden oluşturmak için bazı hile yapar. Düşmanınıza ateş ettiğinizde, çekiminizi atlatabilir, sadece küçük bir hasar alırsınız veya olmayabilir. Tabii ki, istemciden atlatma komutunun çekimden önce veya sonra gelip gelmediğine bağlı olarak karar verecek olan sunucu ... ama saldırgan oyuncu muhtemelen gösterilen 3d animasyon ile enerji sayısı arasında bir uyuşmazlık olduğunu fark etmeyecek. çıkarılmış çubuklar. – 6502

İlgili konular