2015-05-09 22 views
8

Ben basit masaüstü uygulaması yazmak için bakıyordu ve karşılık gelen mobil uygulaması, senaryo olacaktır: Windows Phone Ağ Hizmet Bulma

  1. benim laptop masaüstü uygulamasını çalıştırmak
  2. ben mobil çalıştırmak
  3. iki şimdi
  4. iletişim kurabilir telefon uygulaması nasılsa bulur ve masaüstü uygulaması bağlanır
  5. (aynı kablosuz ağda) benim Lumia üzerinde uygulaması (istemediğim elle ip bulup yazmak zorunda için)

Bunun gibi çok basit bir uygulama, ikisi arasında basit metin mesajları gönderiyordu.
Bir örnek uygulama telefonunuzda PC'niz için bir "uzaktan kumanda" gibi bir şey olurdu sanırım, bir piyasada here bulunabilir.
UDP çoklu yayınına bakmaya başladım ve çalışmaya çalışmak için bir gün harcadım. Bu fikir her iki uygulamanın da aynı çoklu yayın grubuna katılmasını sağlar, katıldığında telefon o gruba mesaj gönderir, PC alır ve IP ile yanıt verir, telefon sonra masaüstü uygulamasına TCP bağlantısı yapar. Geçerli bir çözüm gibi görünüyor, değil mi? Her ne olursa olsun, ne denedim hiç fark etmez gibi görünüyor:

  1. Senaryo: PC uygulamasında olduğu gibi aynı WiFi'ye bağlı olan gerçek telefonda çalışan mobil uygulama: mesajlar gönderiliyor ancak asla ulaşmıyor.
  2. Senaryo: PC uygulamasındaki aynı bilgisayarda bir emülatörde çalışan mobil uygulama: iletiler gönderir ve gönderir.

Bunun için sockets-for-pcl kullanmayı denediğimde kod içeren bir gönderi var. - Sadece bir mesaj göndererek
PC:
İşte .NET zaten ne kullanmak benim girişimi

UdpClient udp = new UdpClient(port); 
IPAddress group_ip = IPAddress.Parse("139.100.100.100"); 
IPEndPoint client_ipep = new IPEndPoint(group_ip, 3344); 
byte[] b = System.Text.Encoding.UTF8.GetBytes(txtEntry.Text); 
udp.Send(b, b.Length, client_ipep); 

TELEFON - Sadece alırsınız:

HostName hostName = new HostName("139.100.100.100"); 
DatagramSocket udp = new DatagramSocket(); 
udp.MessageReceived += (sender, args) => 
{ 
    uint length = args.GetDataReader().ReadUInt32(); 
    string text = args.GetDataReader().ReadString(length); 
}; 
await udp.BindServiceNameAsync("3344"); 
udp.JoinMulticastGroup(hostName); 

Ancak bir gün sonra vazgeçtim Belgelendirme az ve hata ayıklama bazı ağ tarama araçları almak için bana ihtiyacım var ...

Ağ Hizmet Bulma için bazı kütüphaneler için internette arama yaparken bulundu Windows Phone 8.1 için bazı hiçbir Android docs ama hiçbir şey. Yani sanırım sorum şu olurdu: Windows Phone için böyle bir şey var mı? Ya da kodumda yanlış bir şey fark ederseniz, iletişim kurmak için neyi değiştirmek zorundayım? Teşekkürler.

cevap

1

uyumsuz

This sample Şimdi evden uzaktayım size

+0

yardımcı olabilecek çok noktaya veri geçerli bir port sayısını ayarlamak ve almak için unutma ama bugün daha sonra kontrol edecektir. Bu makaleyi daha önce görmedim, umarım yardımcı olur. Teşekkürler :) –

+0

U R Hoş Geldiniz. Umarım yardımcı olur – BzH