#include "lwip/opt.h"
#include "lwip/sys.h"
#include "lwip/sockets.h"
#define RCV_BUFFER_LEN 1024
unsigned char rec_buffer[RCV_BUFFER_LEN]={"\n"};
unsigned char rec_buffer1[RCV_BUFFER_LEN]={"0X00,0x14,0x97,0x0F,0x1D,0xEA\n"};
#define RCV_BUFFER_LEN 1024
#define IP_addr_serv (192,168,1,255)
#define ADD_TO_INT(d ,c ,b , a) (((unsigned long)((a) & 0xff) << 24) | ((unsigned long)((b) & 0xff) << 16) | ((unsigned long)((c) & 0xff) << 8) | (unsigned long)((d) & 0xff))
void httpd_thread(void *arg)
{
int s, ei, temp;
struct sockaddr_in serv, cli;
INT32U len;
unsigned char optval = 1;
memset(&serv, 0, sizeof(struct sockaddr_in));
serv.sin_family = AF_INET;
serv.sin_port = htons(180); //本地端口
serv.sin_addr.s_addr = 0;
memset(&cli, 0, sizeof(struct sockaddr_in));
cli.sin_family = AF_INET;
cli.sin_port = htons(181);
cli.sin_addr.s_addr = ADD_TO_INT(192,168,1,116);
s = socket(AF_INET, SOCK_DGRAM , 0);
setsockopt(s,SOL_SOCKET,SO_BROADCAST,( void *)&optval,sizeof(optval));
ei = bind(s, (struct sockaddr*)&serv, sizeof(struct sockaddr_in));
while (1)
{
/* */
len = recvfrom( s, rec_buffer, RCV_BUFFER_LEN , 0,
(struct sockaddr *) & serv, &ei );
if(len > 0)
{
len = sendto(s , rec_buffer1 , strlen(rec_buffer1) , 0 ,
(struct sockaddr*)&cli , sizeof(cli));
}
OSTimeDlyHMSM(0, 0, 1, 0);
}
}