我的Arduino +以太网盾WebServer草图有时无法连接到客户端。原因是什么?

问题描述:

我Arduino的Web服务器偶尔草图上失败:我的Arduino +以太网盾WebServer草图有时无法连接到客户端。原因是什么?

EthernetClient client = server.available(); 
if (client) 

今天上午,它连接在第一次运行就好了。现在,它无法再连接到客户端。几天前,它工作了好几次,但也失败了好几次。我通过以太网电缆将屏蔽层连接到我的家庭路由器。我已验证分配给Arduino的IP地址。我试过端口80和8080.什么可能会出错,我还可以尝试什么?我的ISP可以在这里阻塞什么吗?请不要害怕提出明显的,因为我几乎不了解网络。

如果相关,这里是一块较大的代码,其中循环上

Serial.println("Listening"); 

代码:

#include <SPI.h> 
#include <Ethernet.h>n 

// Enter a MAC address and IP address for your controller below. 
// The IP address will be dependent on your local network: 

byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0xF7, 0x99 }; 
IPAddress ip(192,168,2,5); 

// Initialize the Ethernet server library 
// with the IP address and port you want to use 
// (port 80 is default for HTTP): 
EthernetServer server(80); 

String roundOpenTag = ""; 
String roundCloseTag = ""; 

void setup() 
{ 
    // Start the Ethernet connection and the server: 
    Ethernet.begin(mac, ip); 
    server.begin(); 

    int ledPin = 8; 
    // Initialize the digital pin as an output. 
    pinMode(ledPin, OUTPUT); 
    Serial.begin(9600); 
    Serial.println("Setting up"); 
} 

void loop() 
{ 
    // Listen for incoming clients 
    EthernetClient client = server.available(); 
    Serial.println("Listening"); 
    if (client) 
    { 
     Serial.println("Server available"); 
     // An HTTP request ends with a blank line 
     boolean currentLineIsBlank = true; 
     while (client.connected()) { 
      Serial.println("Client connected"); 
      if (client.available()) 
      { 
       char c = client.read(); 

我看不到目的,包括草图的其余部分。我非常感谢你的帮助。

+0

我注释掉了 - Serial.begin(9600); - 以及所有后续的连续打印输出,并且它再次始终如一地工作。我对此没有任何解释。 – cmac 2012-04-09 03:15:17

你的setup()函数中有一个空的Seiral.begin()。尝试删除它。

编辑

当你调用Serial.begin(),你必须提供在要传达的baut率(速度)。您可以在Arduino library page阅读更多关于该功能的信息。

你必须在你的代码

  • 两个问题你有一个空Serial.begin()函数调用,不带任何参数
  • 你不得不重复Serial.begin()函数。您已经在setup()函数的开头指定了它。
+0

就是这样。但是,'空'是什么意思?我希望能够打印出来以便调试我的代码,但无法做到这一点,并保持我的草图工作。 – cmac 2012-04-25 19:05:41

+0

更新了答案,以回答您的查询。 – Sudar 2012-04-26 06:41:42

+0

我注意到这个问题已经被观察了很多。我想说明的是,我从未能够连接到我的客户端并一起执行连续打印输出。令我感到沮丧的是,我从来没有解决过这个问题,所以如果有人知道答案,请分享。 – cmac 2012-12-07 16:15:47