#defineSERVER_PORT1002
int32listenfd;
int32ret;
structsockaddr_inserver_addr,remote_addr;
intstack_counter=0;
/*Constructlocaladdressstructure*/
memset(&server_addr,0,sizeof(server_addr));/*Zerooutstructure*/
server_addr.sin_family=AF_INET;/*Internetaddressfamily*/
server_addr.sin_addr.s_addr=INADDR_ANY;/*Anyincominginterface*/
server_addr.sin_len=sizeof(server_addr);
server_addr.sin_port=htons(httpd_server_port);/*Localport*/
/*Createsocketforincomingconnections*/
do{
listenfd=socket(AF_INET,SOCK_STREAM,0);
if(listenfd==-1){
printf("ESP8266TCPservertask>socketerror\n”);
vTaskDelay(1000/portTICK_RATE_MS);
}
}while(listenfd==-1);
printf("ESP8266TCPservertask>createsocket:%d\n",server_sock);
/*Bindtothelocalport*/
do{
ret=bind(listenfd,(structsockaddr*)&server_addr,sizeof(server_addr));
if(ret!=0){
printf("ESP8266TCPservertask>bindfail\n”);
vTaskDelay(1000/portTICK_RATE_MS);
}
}while(ret!=0);
printf("ESP8266TCPservertask>port:%d\n”,ntohs(server_addr.sin_port));
Establish TCP server interception:
do{
/*Listentothelocalconnection*/
ret=listen(listenfd,MAX_CONN);
if(ret!=0){
printf("ESP8266TCPservertask>failedtosetlistenqueue!\n");
vTaskDelay(1000/portTICK_RATE_MS);