我的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();
我没有看到包含草图其余部分的目的。我非常感谢你的帮助。
答案 0 :(得分:1)
您的setup()函数中有一个空的Seiral.begin()。尝试删除它。
修改强>:
当你调用Serial.begin()时,你必须提供你想要通信的baut率(速度)。您可以在Arduino library page了解有关该功能的更多信息。
您的代码中存在两个问题