uip_listen()函数不等待侦听连接 - uIP库

时间:2014-05-06 14:00:46

标签: c windows sockets tcp micro-ip

我目前正在开发一个应用程序,用于在atmel AT91SAM7x256微控制器和我的Windows机器之间执行TCP / IP通信。

我已成功编译并将uIP标准库链接到我的应用程序。 uIP函数正在被应用程序识别,但我在main中做的第一件事是,应用程序在端口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库侦听某个端口上的连接的正确方法吗?我将不胜感激任何帮助!

更新

我尝试在while循环中插入监听:

printf("Establishing connection\n");

int c;

  while(1)
  {
    uip_listen(HTONS(51719));
    if(c = uip_connected() != 0)
    {
      printf("Connection established\n");
      break;
    }

但它仍然无法从remost主机连接       }

0 个答案:

没有答案