|
esp8266作AP搭建sever时,esp8266client无法connect,报103错误
[复制链接]
本帖最后由 kf_2010 于 2017-11-7 08:44 编辑
前情描述:两片esp8266-01s刷了micropython,一块作为服务器 一块做客户端,之前在同为STA模式连入家里路由时,已经可以顺利收发信息。程序用的是micropyth源码里network部分的自带例程。(http_client.py,http_sever_simplistic.py)
目前状况:当把带服务器程序的8266做为AP后,连接到其上作为client的8266执行s.connect()命令失败返回103错误。
补充状况:把电脑和手机连接到8266AP后,均能正常连接收发信息
换了一片nodemcu刷了micropython后做client连接显示同样的错误
考虑可能的原因:1、路由默默的做了什么。。。弥补了我简陋的代码导致的错误
2、micropython自带的socket有问题。。。
自己tcp socket没有深入的理解 停留在作为工具拿来用阶段 所以不能清楚的判断可能存在的原因 渴望得到大家的帮助 谢谢
具体报错信息补充下
>>> print(addr)
('192.168.4.1', 8080)
>>> s.connect(addr)
Traceback (most recent call last):
File "", line 1, in
OSError: [Errno 103] ECONNABORTED
>>>
客户端代码
- import socket
- s = socket.socket()
- addr = socket.getaddrinfo("192.168.4.1",8080)[0][-1]
- print(addr)
- s.connect(addr)
- s.send(b"GET / HTTP/1.0\r\n\r\n")
- s.close()
复制代码
服务器端代码
- # Do not use this code in real projects! Read
- # http_server_simplistic_commented.py for details.
- try:
- import usocket as socket
- except:
- import socket
- CONTENT = b"""\
- HTTP/1.0 200 OK
- Hello #%d from MicroPython!
- """
- s = socket.socket()
- ai = socket.getaddrinfo("0.0.0.0", 8080)
- addr = ai[0][-1]
- s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- s.bind(addr)
- s.listen(5)
- print("Listening, connect your browser to http://<this_host>:8080/")
- counter = 0
- while True:
- res = s.accept()
- client_s = res[0]
- client_addr = res[1]
- req = client_s.recv(4096)
- print("Request:")
- print(req)
- client_s.send(CONTENT % counter)
- client_s.close()
- counter += 1
- print()
复制代码
[ ... ][ mw_shl_code = Python,真]进口插座
|
|