2016-09-18 12 views
6

Aslında, bir TCP/IP yerel ağında bir kalın istemci uygulamasına (değiştiremediğim) komut gönderen bir web uygulaması (ASP.NET MVC) üzerinde çalışıyorum. Bu kalın istemci uygulamasının benim komutuma yanıt vermesine veya bana bilgi vermesine ihtiyacım var, dolayısıyla bağlantının her zaman açık olması gerekiyor. yani orada daha iyi olduğunu,TCP/IP İstemci tarafı döngü .NET

public static async void getMessage() 
     { 
      while(true) 
      { 
       // Buffer to store the response bytes. 
       Byte[] data = new Byte[100000]; 

       // String to store the response ASCII representation. 
       String responseData = String.Empty; 

       // Read the first batch of the TcpServer response bytes. 
       Int32 bytes = await stream.ReadAsync(data, 0, data.Length); 
       if (bytes == 0) continue; 
       responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes); 
       Debug.Write(responseData); 

       await stream.ReadAsync(data, 0, data.Length); 
      } 
     } 

aslında çalışıyor ve ben sunucudan yanıt aldı, ancak tarayıcı her zaman "localhost bekliyor" dır: Ben böyle Sunucu yanıtı kontrol eden bir döngü oluşturmak Bunu yapmanın yolu, tarayıcıda döngü olmadan?

Çok teşekkür ederim!

cevap

5

Bu bir web kamerası için gerçekten iyi bir durum gibi geliyor. Bir MVC uygulamasında, genellikle SignalR: http://www.asp.net/signalr

+0

'u kullanırsınız. İlk önce @dperish'e teşekkür ederiz. Bir sorum daha var (belki aptalca biri ...) Web uygulaması internet olmadan sadece yerel ağda kullanılmak üzere bir sunucuda "konuşlandırılacak" olacak. Sinyal kullanımıyla ilgili bir sorun mu olacak? –

+0

Hayır, intranet sunucunuza dağıtılan SignalR paketlerine sahip olmanız önemli değil. NuGet ('Install-Package Microsoft.AspNet.SignalR') aracılığıyla yüklediyseniz, doğru şekilde paketlenmeli/dağıtılmalıdır. – dperish

İlgili konular