2016-04-11 32 views
1

JGroups kullanarak basit bir sohbet uygulaması geliştiriyorum. Uygulama bilgisayarımda mükemmel çalışıyor, ancak aynı ağdaki başka bir bilgisayarda çalıştırmaya çalıştığımda işe yaramıyor.JGroups (JChannel) Sohbet Uygulaması diğer bilgisayarda çalışmıyor

void start() throws Exception { 
    channel=new JChannel();     
    channel.setReceiver(this);   
    channel.connect("Test");   
} 

Başlatma() işlevindeki herhangi bir yapılandırmayı kaçırıyor muyum? Diğer bilgisayarda çalıştırdığımda, "Test" kümesindeki sohbet örneğini tanımıyor. Belki de "Test" kümesinin başka bir örneğini oluşturur.

Yardım isteyin. Teşekkürler!

+0

Bilgisayarlarda IPv6 yapılandırdınız mı? JGoups bazen IPv6 ile diğer örnekleri bulmak için sorun var. Program başlangıcına "-Djava.net.preferIPv4Stack = true" ayarını eklemeyi deneyin. Ne buluşma modülü ve protokol kullanıyorsunuz? – Konrad

+0

Varsayılanı kullanıyorum (tahmin ediyorum UDP). PreferIPv4Stack = true değerini kullanmaya çalışacağım. Zaman ayırdığın için teşekkürler! Çalışırsa söylerim. –

+0

Çalışmadı. Şimdi bind_addr ayarlamaya çalışıyorum. –

cevap

1

Program çıktılarını gösterir? Bir 127.0.0.1 adresi içeriyorsa, düğümler birbirini bulamaz. Bu durumda, bind_addr öğesini ya -Djgroups.bind_addr=x.x.x.x ya da channel.getProtocolStack.findProtocol(TP.class).setValue"bind_addr", "x.x.x.x") olarak ayarlayın. İkinci kanalın bağlanmasından önce yapılması gerekiyor. Yukarıda da belirtildiği gibi bir IPv6 sorunu da olabilir.

+0

Merhaba, program swing bileşenlerini kullanarak basit bir sohbet penceresi açar. Bilgisayarımda iki veya daha fazla program çalıştırdığımda diğerlerine mükemmel mesajlar gönderirim, ancak başka bir bilgisayarda çalıştırdığımda, bilgisayarımda açılan sohbet pencerelerini "tanıyamaz" gibi görünüyor. Bind_addr'yi ayarlamaya çalışacağım. Channel.getProtocolStack.findProtocol (TP.class) .setValue "bind_addr", "192.168.10.101" gibi)? 192.168.10.101 benim ağ eklentilerim. Ben sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException de java.lang.String \t için java.net.InetAddress alan org.jgroups.protocols.TP.bind_addr ayarlanamaz "alıyorum –

+0

(Bilinmeyen Kaynak) sun.reflect de \t .UnsafeFieldAccessorImpl.throwSetIllegalArgumentException (Bilinmeyen Kaynak) ". Bind_addr ayarlamaya çalışırken. Ben channel.getProtocolStack() çalışıyorum. FindProtocol (TP.class) .setValue ("bind_addr", yeni Dize ("192.168.10.101")); –

+0

Düzenleme: Sorun çözüldü. channel.getProtocolStack(). findProtocol (TP.class) .setValue ("bind_addr", InetAddress.getByName ("192.168.10.101")); –

İlgili konular