在LwIP協議棧中,TCP和UDP提供了豐富的API接口以支持網絡通信。以下是對TCP和UDP相關API的說明:
TCP API包括:
tcp_arg():用于傳遞給應用程序的具體狀態,在控制塊標志建立后調用。
tcp_new():在定義一個tcp_pcb控制塊后首先調用,建立連接標志。
tcp_bind():綁定本地IP地址和端口號,只能在tcp_new()調用后執行。
tcp_listen():接收請求連接時,由指定回調函數調用,調用前需調用tcp_bind()。
tcp_listen_with_backlog():監聽隊列中未處理連接數量受限,通過backlog參數設置,需在lwipopts.h中配置。
tcp_accepted():通常在“accept”回調中調用,用于內務工作如連接入隊。
tcp_accept():調用后指定回調函數將被調用,一般在tcp_listen()后執行。
tcp_connect():請求連接遠程主機并發送SYN段,不等待連接建立。
tcp_write():發送TCP數據,數據放入發送隊列,協議內核決定發送。
tcp_sent():設置遠程主機成功接收數據后的回調函數。
tcp_recv():指定新數據接收時調用的回調函數。
tcp_recved():在tcp_recv()指定的回調中調用,獲取接收數據長度。
tcp_poll():使用輪詢功能時調用,指定輪詢時間間隔和回調函數。
tcp_close():關閉連接。
tcp_abort():通過向遠程主機發送RST段中止連接,釋放資源。
tcp_err():指定處理錯誤的回調函數,用于內存不可用等錯誤處理。
UDP API包括:
udp_new():建立用于UDP通信的UDP控制塊,但未激活,需綁定本地地址或連接遠程主機后激活。
udp_remove():刪除指定連接,釋放資源。
udp_bind():綁定本地IP地址和端口號,調用后可使用。
udp_connect():將連接綁定到遠程主機,設置遠程IP地址和端口號。
udp_disconnect():關閉連接,刪除遠程地址。
udp_send():發送UDP數據包,設置遠程IP地址和端口號。
udp_sendto():指定發送目的主機IP地址和端口號,若已調用udp_connect(),則以新指定為準。
udp_recv():指定新接收的UDP數據調用的回調函數,接收遠程主機信息。
以上API提供了TCP和UDP通信的基本功能,開發者可根據需求選擇合適的API進行網絡編程。