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

时间:2012-04-06 18:13:08

标签: tcp arduino ethernet

我的Arduino Web服务器草图偶尔会失败:

 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();

我没有看到包含草图其余部分的目的。我非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

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

修改

当你调用Serial.begin()时,你必须提供你想要通信的baut率(速度)。您可以在Arduino library page了解有关该功能的更多信息。

您的代码中存在两个问题

  • 你有一个空的Serial.begin()函数调用,没有任何参数
  • 您有重复的Serial.begin()函数。您已经在setup()函数的开头指定了它。