我目前深化发展执行爱特梅尔微控制器AT91SAM7X256,和我的Windows机器之间的TCP / IP通信的应用。
我已经成功地编译和链接uIP的标准库,以我的应用程序。 uIP的功能越来越被应用程序识别,但是我的主要做,应用程序的第一件事就是听一个连接请求的端口51719是:
#include <stdio.h>
#include "uip.h"
#define UIP_APPCALL client_app
int main(void)
{
printf("Hello World ");
uip_init();
printf("Establishing connection\n");
uip_listen(HTONS(51719));
if(uip_connected())
{
printf("Connection established\n");
}
return 0;
}
但该计划似乎跳过听力部分,因为它只是打印Hello World,并建立退出之前连接。 我本来以为,因为那uip_listen()
函数,该程序会进入一种等待的连接请求无限循环的(就是完整的堆栈TCP / IP库,Winsock的,是如何处理的东西)。
这是不听使用的uIP库某个端口上的连接的正确方法? 我将不胜感激任何帮助!
UPDATE
我试着插入在聆听while
循环:
printf("Establishing connection\n");
int c;
while(1)
{
uip_listen(HTONS(51719));
if(c = uip_connected() != 0)
{
printf("Connection established\n");
break;
}
但它仍然不会从remost主机连接。
}