2016-12-24 34 views
1

这是下面的代码。.net gadgeteer网络事件未触发。从Web服务器没有响应

using System; 
using System.Collections; 
using System.Threading; 
using Microsoft.SPOT; 
using Microsoft.SPOT.Presentation; 
using Microsoft.SPOT.Presentation.Controls; 
using Microsoft.SPOT.Presentation.Media; 
using Microsoft.SPOT.Presentation.Shapes; 
using Microsoft.SPOT.Touch; 

using Gadgeteer.Networking; 
using GT = Gadgeteer; 
using GTM = Gadgeteer.Modules; 
using Microsoft.SPOT.Net.NetworkInformation; 


namespace WebSer 
{ 
    public partial class Program 
    { 
     GT.Networking.WebEvent sayHello; 
     GT.Timer t; 
     void ProgramStarted() 
     { 
      t = new GT.Timer(1000); 
      t.Tick += new GT.Timer.TickEventHandler(t_Tick); 
      t.Start(); 
     } 

     private void t_Tick(GT.Timer timer) 
     { 
      t.Stop(); 
      if (!wifi.NetworkInterface.Opened) 
       wifi.NetworkInterface.Open(); 
      if (!wifi.NetworkInterface.IsDhcpEnabled) 
       wifi.NetworkInterface.EnableDhcp(); 
      wifi.NetworkInterface.NetworkInterface.EnableDynamicDns(); 

      NetworkChange.NetworkAddressChanged += NetworkChange_NetworkAddressChanged; 
      NetworkChange.NetworkAvailabilityChanged += NetworkChange_NetworkAvailabilityChanged; 
      wifi.NetworkInterface.Join("Connectify-test", "abdi1990"); 
      while (true) 
      { 
       string ipaddress = wifi.NetworkInterface.IPAddress; 
       Debug.Print(ipaddress); 

       if (ipaddress != "0.0.0.0") break; 

       Thread.Sleep(1000); 
      } 
      Thread.Sleep(-1); 
     } 

     private void NetworkChange_NetworkAvailabilityChanged(object sender, NetworkAvailabilityEventArgs e) 
     { 
      Debug.Print("CHANGED"); 

     } 

     private void NetworkChange_NetworkAddressChanged(object sender, EventArgs e) 
     { 
      Debug.Print(wifi.NetworkInterface.IPAddress+"from event"); 
      if (wifi.NetworkInterface.IPAddress != "0.0.0.0") 
      { 
       WebServer.StartLocalServer(wifi.NetworkInterface.IPAddress, 80); 
       sayHello = WebServer.SetupWebEvent("hello"); 
       sayHello.WebEventReceived+=sayHello_WebEventReceived; 
       // wifi_RS21.Interface.Disconnect(); 
      } 
     } 

     private void sayHello_WebEventReceived(string path, WebServer.HttpMethod method, Responder responder) 
     { 
      string content = "<html><body><h1>Hello World!!</h1></body></html>"; 
      byte[] bytes = new System.Text.UTF8Encoding().GetBytes(content); 
      responder.Respond(bytes, "text/html"); 
     } 


    } 
} 

输出在第一当它连接是这

The thread '<No Name>' (0x2) has exited with code 0 (0x0). 
Using mainboard GHI Electronics FEZ Spider version 1.0 
The thread '<No Name>' (0x3) has exited with code 0 (0x0). 
0.0.0.0 
0.0.0.0 
CHANGED 
192.168.137.102from event 
Web server started at http://192.168.137.102:80/ 
192.168.137.102 

然后当我去192.168.137.102:80其输出在最后 两个附加的行和正确地显示默认的站点。我还附上作为图片

The thread '<No Name>' (0x2) has exited with code 0 (0x0). 
Using mainboard GHI Electronics FEZ Spider version 1.0 
The thread '<No Name>' (0x3) has exited with code 0 (0x0). 
0.0.0.0 
0.0.0.0 
CHANGED 
192.168.137.102from event 
Web server started at http://192.168.137.102:80/ 
192.168.137.102 
The thread '<No Name>' (0x7) has exited with code 0 (0x0). 
The thread '<No Name>' (0x8) has exited with code 0 (0x0). 

Default site

这时如果去192.168.137.102:80/hello什么也没有发生的浏览器会加载和输出两个更多的事情在底部

The thread '<No Name>' (0x2) has exited with code 0 (0x0). 
Using mainboard GHI Electronics FEZ Spider version 1.0 
The thread '<No Name>' (0x3) has exited with code 0 (0x0). 
0.0.0.0 
0.0.0.0 
CHANGED 
192.168.137.102from event 
Web server started at http://192.168.137.102:80/ 
192.168.137.102 
The thread '<No Name>' (0x7) has exited with code 0 (0x0). 
The thread '<No Name>' (0x8) has exited with code 0 (0x0). 
The thread '<No Name>' (0x9) has exited with code 0 (0x0). 
The thread '<No Name>' (0xa) has exited with code 0 (0x0). 

所以默认的192.168.137.102:80工作,但192.168.137.102:80/hello不工作。 我需要帮助。

回答