⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tcpecho.c

📁 网络服务器上实现操作系统和嵌入式协议栈的 结合
💻 C
字号:


#include "lwip/sys.h"
#include "lwip/api.h"


/*-----------------------------------------------------------------------------------*/
static void 
tcpecho_thread(void *arg)
{
  struct netconn *conn, *newconn;
  err_t err;
  u8_t	OS_err;
  /* Create a new connection identifier. */
  conn = netconn_new(NETCONN_TCP);


  /* Bind connection to well known port number 7. */
  netconn_bind(conn, NULL, 7);


  /* Tell connection to go into listening mode. */
  netconn_listen(conn);


  while(1) {

    /* Grab new connection. */
    newconn = netconn_accept(conn);


    /*printf("accepted new connection %p\n", newconn);*/
    /* Process the new connection. */
    if(newconn != NULL) {
      struct netbuf *buf;
      void *data;
      u16_t len;
      
      while((buf = netconn_recv(newconn)) != NULL) 
      {
	/*printf("Recved\n");*/
	do {
	  netbuf_data(buf, &data, &len);
	  err = netconn_write(newconn, data, len, NETCONN_COPY);
	  if(err != ERR_OK) {
	    /*	    printf("tcpecho: netconn_write: error \"%s\"\n", lwip_strerr(err));*/
	  }
	} while(netbuf_next(buf) >= 0);
	netbuf_delete(buf);	
      }
      /*printf("Got EOF, looping\n");*/
      /* Close connection and discard connection identifier. */
      netconn_delete(newconn);
    }
  }
}
/*-----------------------------------------------------------------------------------*/
void
tcpecho_init(void)
{
  sys_thread_new(tcpecho_thread, NULL,TCPIP_THREAD_PRIO);  
}
/*-----------------------------------------------------------------------------------*/



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -