我正在努力完成某件事。问题是,我有一个带有传感器的arduino,我想从我的办公室记录他们的读数并将数据发送到我家的电脑。我使用Arduino以太网屏蔽将arduino连接到互联网,并且为了发送数据,我使用了EthernetClient。为了接收数据,我使用了一个运行在地址" 1111"在我的家用电脑上。但是,当我想将数据发送到家用计算机时,它表示连接失败。
我已经在我的家用机器,端口80和端口1111上转发了两个端口。当我在浏览器上使用IP地址和端口80登录家用PC时,它向我显示我在那里托管的HTTPD服务器。但是,当我使用Arduino连接到相同的IP地址和端口80时,连接失败。
这是我的代码:
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress server(100, 65, 91, 226); // <<<<<<< My server Address
IPAddress ip(192, 168, 0, 177);
EthernetClient client;
void setup() {
Serial.begin(9600);
while (!Serial);
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
Ethernet.begin(mac, ip);
}
delay(1000);
Serial.println("connecting...");
if (client.connect(server, 1111)) {
Serial.println("connected");
} else {
Serial.println("connection failed");
}
}
void loop() {
client.println("data to be sent");
}
import socket
import time
sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
if not sck:
print "Could not create a socket for listening on this machine!"
else:
print "Successfully created a socket"
sck.bind(("", 1111))
sck.listen(20)
print "listening to socket 111"
def listen():
while True:
clientSocket, clientAddr = sck.accept()
if not clientSocket:
print "No connection yet!"
continue
print "connected with", clientAddr
while True:
receiv = clientSocket.recv(4096)
print receiv
if not receiv:
print "Client lost connection!"
listen()
listen()
我对arduino比较陌生。但是,当我尝试使用另一个网络上的另一台机器将数据发送到python套接字时,它是成功的。 Arduino似乎无法连接到套接字。我能做什么? 谢谢!