2016-03-19 13 views
0

Java'da anında mesajlaşma yapıyorum ve hem metin hem de resim gönderme özelliğini eklemek istiyorum. Akla gelen ilk şey yeni Soketler ve giriş ve çıkış akışları yapmaktı. Öncelikle, bu çalışma olacak ve bu iyi bir uygulama. İkincisi, eğer bu işe yaramazsa, mesajın alıcı ucu bir görüntü veya bir String ise, ne anlama geldiğini nasıl anlar?Yalnızca Bir Bağlantı İçin İki Yuva

+0

Çalışacak, ancak iki bağlantınız olacak ve muhtemelen en iyi fikir değil. Bir String'in ne olduğunu ve bir görüntünün ne olduğunu belirtmek için veri biçiminize bir miktar * meta veri * ekleyebilmeniz gerekir (ve henüz düşünmediğiniz bir şey var). – OrangeDog

+0

Birden çok soket istediğinizi düşünmüyorum. Her şey aynı tüpe gider. İki priz size herhangi bir şey vermez. Unutmayın ki soketler iki yönlü borulardır. – dcow

+0

Yani şu anda bir kod (bir int) ve bir mesaj (bir dizge) göndermek için bir yol var. Ben bununla oynamayı denedim, bu yüzden alıcı son, görüntü gelen bir kod gönderen bir kod göndermek, sonra sadece bir Nesne için mesajını değiştirmek, ancak sadece resmin dosya yolunu göndermek istiyorum. Ayrıca, bir nesnenin bir dize mi, bir dosya mı olduğunu nasıl anlayacağımı bilmiyorum. – dsiegler19

cevap

1

Bir çıkış akışı iletilere eklemeniz gereken baytlar içerir. Okuyucu hangi tipteki verileri gönderdiğinizi bilir, çünkü gönderenin gönderdiği mesaj türünü belirtmesi gerekir.

örn. Bir dizge olarak "görüntü" yazarsak, onu takip eden şeyin bir görüntü olduğunu varsayabilirsin.

+0

Peki, java'da hangi nesne tipinin olduğunu nasıl anlarım? – dsiegler19

+0

@ dsiegler19 yazdığınız zaman söylediğiniz türdür. –

1

Dizeleri veya Görüntüleri iletmediğinizi unutmayın, İleti'u değiştiriyorsunuz. Bir mesaj, onunla ilişkili bir içerik veya mesaj türüne sahip olmalıdır.

+0

Bazı sebeplerden ötürü kodun herhangi bir yerinde bir yere çakıldıkları için çok fazla düşmesine neden oldum. Instanceof anahtar sözcüğünü kullandım. – dsiegler19

+0

Mesajları ileri ve geri göndermek için Java serileştirme kullanıyormuşsunuz gibi geliyor. Bu, bir test projesi için işe yarayacak ve iyi olacaksa da, güçlü olmak istiyorsanız, gerçekten üzerinde kontrol sahibi olduğunuz ayrı bir serileştirme formatı tanımlamanız gerekir, örn. JSON veya XML mesajları. Bu, gelecekteki genişletmelerde yardımcı olacaktır (mesajlara bir mesaj tipi revizyon numarası eklemeyi unutmayın) – dovetalk

İlgili konular