我有一个连接到同一家庭无线网络的Raspberry Pi 3+和Raspberry PizeroW。
Pi 3+正在托管Django服务器,而Pi 3+的IP地址在本地网络192.384.5.767
上是静态的。
Pizero W在192.384.5.343
的家庭网络上具有一个静态IP地址。
当我从Pizero W ping Pi 3+服务器时,我看到它已经启动:
pi@PIZEROW:~$ ping 192.384.5.767
64 bytes from 192.384.5.767: icmp_seq=1 ttl=64 time=10.5 ms
64 bytes from 192.384.5.767: icmp_seq=2 ttl=64 time=30.0 ms
64 bytes from 192.384.5.767: icmp_seq=3 ttl=64 time=32.1 ms
此外,当我访问平板电脑上Django服务器托管的网站时,没有任何问题。
但是,我需要在Pizero W和Django服务器之间进行双向通信,因此想测试从Pizero W向Pi 3+服务器发送超简单JSON消息并从其收到的服务器接收确认消息。除了接收消息,丢弃消息并发送确认消息已收到以外,我不需要服务器对消息做任何事情。
我尝试使用以下方法从Pizero W进行此操作:
pi@PIZEROW:~$ python3
>>> import requests
>>> import JSON
>>> url = "http://192.384.5.767:8000"
>>> data = {'msg':'test'}
>>> r = requests.post(url,data)
并收到以下错误:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/urllib3/connection.py",line 159,in _new_conn
(self._dns_host,self.port),self.timeout,**extra_kw)
File "/usr/lib/python3/dist-packages/urllib3/util/connection.py",line 80,in create_connection
raise err
File "/usr/lib/python3/dist-packages/urllib3/util/connection.py",line 70,in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused
During handling of the above exception,another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py",line 600,in urlopen
chunked=chunked)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py",line 354,in _make_request
conn.request(method,url,**httplib_request_kw)
File "/usr/lib/python3.7/http/client.py",line 1229,in request
self._send_request(method,body,headers,encode_chunked)
File "/usr/lib/python3.7/http/client.py",line 1275,in _send_request
self.endheaders(body,encode_chunked=encode_chunked)
File "/usr/lib/python3.7/http/client.py",line 1224,in endheaders
self._send_output(message_body,line 1016,in _send_output
self.send(msg)
File "/usr/lib/python3.7/http/client.py",line 956,in send
self.connect()
File "/usr/lib/python3/dist-packages/urllib3/connection.py",line 181,in connect
conn = self._new_conn()
File "/usr/lib/python3/dist-packages/urllib3/connection.py",line 168,in _new_conn
self,"Failed to establish a new connection: %s" % e)
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0xb5a2b610>: Failed to establish a new connection: [Errno 111] Connection refused
During handling of the above exception,another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/requests/adapters.py",line 449,in send
timeout=timeout
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py",line 638,in urlopen
_stacktrace=sys.exc_info()[2])
File "/usr/lib/python3/dist-packages/urllib3/util/retry.py",line 398,in increment
raise MaxRetryError(_pool,error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='192.384.5.767',port=8000): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xb5a2b610>: Failed to establish a new connection: [Errno 111] Connection refused'))
During handling of the above exception,another exception occurred:
Traceback (most recent call last):
File "<stdin>",line 1,in <module>
File "/usr/lib/python3/dist-packages/requests/api.py",line 116,in post
return request('post',data=data,json=json,**kwargs)
File "/usr/lib/python3/dist-packages/requests/api.py",line 60,in request
return session.request(method=method,url=url,**kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py",line 533,in request
resp = self.send(prep,**send_kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py",line 646,in send
r = adapter.send(request,**kwargs)
File "/usr/lib/python3/dist-packages/requests/adapters.py",line 516,in send
raise ConnectionError(e,request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='192.384.5.767',port=8000): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xb5a2b610>: Failed to establish a new connection: [Errno 111] Connection refused'))
不能完全确定发生了什么,但是尽管我的平板电脑已经启动并运行了Django服务器,并且ping
成功了,但看来我仍然从Pizero发送和接收消息。
任何帮助/建议将不胜感激!谢谢!