这两天从官方的enet_uip例程入手,实现了TCP通讯。
在uip-conf.h文件中
#define UIP_CONF_UDP 0
#define UIP_APPCALL tcp_appcall
设置TCP方式和回调函数
//TCP初始化
void tcp_init(void)
{
uip_listen(HTONS(8000));
}
//TCP回调函数
void tcp_appcall(void)
{
char *hello = "Hi, This is a TCP test!\n";
if(uip_connected())
{
uip_send(hello,strlen(hello)+1);
}
if(uip_newdata())
{
uip_send(uip_appdata,uip_len);
}
}
在enet_uip.c文件中
#define DEFAULT_IPADDR0 192
#define DEFAULT_IPADDR1 168
#define DEFAULT_IPADDR2 1
#define DEFAULT_IPADDR3 12
#define DEFAULT_NETMASK0 255
#define DEFAULT_NETMASK1 255
#define DEFAULT_NETMASK2 255
#define DEFAULT_NETMASK3 0
uip_ipaddr(ipaddr, DEFAULT_IPADDR0, DEFAULT_IPADDR1, DEFAULT_IPADDR2, DEFAULT_IPADDR3);
uip_sethostaddr(ipaddr);
uip_ipaddr(ipaddr, DEFAULT_NETMASK0, DEFAULT_NETMASK1, DEFAULT_NETMASK2, DEFAULT_NETMASK3);
uip_setnetmask(ipaddr);
初次与LM3S8962开发板建立TCP连接时,开发板发送“Hi,This is a TCP test!”
此后,开发板会将收到的数据发送回去。