我参考IOT_DEMO 写的程序,设置为AP建立的服务器,但用另一个模块连接时,与服务器连接成功后马上断开,返回原因是-9(ESPCONN_RST)。
以下是建立服务器的程序:
Code: Select all
LOCAL void ICACHE_FLASH_ATTR
webserver_listen(void *arg)
{
struct espconn *pesp_conn = arg;
os_printf("web listen\n");
//espconn_regist_recvcb(pesp_conn, webserver_recv);
//espconn_regist_reconcb(pesp_conn, webserver_recon);
espconn_regist_disconcb(pesp_conn, webserver_discon);
}
void ICACHE_FLASH_ATTR
server_creat(void)
{
struct espconn user_server;
esp_tcp esptcp;
sint8 return_value;
uint8 i;
user_server.type = ESPCONN_TCP;
user_server.state = ESPCONN_NONE;
user_server.proto.tcp = &esptcp;
user_server.proto.tcp->local_port = 8000;
espconn_regist_connectcb(&user_server, webserver_listen);
return_value = espconn_accept(&user_server);
os_printf("%d\n",return_value);
espconn_regist_time(&user_server,60,0);
i = espconn_tcp_get_max_con();
os_printf("%d\n",i);
espconn_tcp_set_max_con(5);
}
CLIENT第一次连接显示state是3 就是连接上了,但服务器这边没有进入回调函数,接着CLIENT端就显示state为6,然后返回错误值是-9,以下是串口打印数据
type:16,state:3,ip:192.168.4.1,port:8000
type:16,state:6,ip:192.168.4.1,port:8000
err:-9
Client端测试连接其他服务器都是正常的,所以问题应该是处在服务器端,但不知道是什么问题导致的。
有人知道原因吗?