Seregon/rtnet-stack

Real-Time Embedded Network Stack

C/66 B/No license
examples/tcp_http_client/main.c
1#include "rtnet_stack.h"
2#include <string.h>
3 
4static const RTNET_IPv6Addr_t LOCAL_IP = { .addr = {0xFE,0x80,0,0,0,0,0,0,0,0,0,0,0,0,0,2} };
5static const RTNET_MACAddr_t LOCAL_MAC = { .addr = {0x00,0xAA,0xBB,0xCC,0xDD,0xEE} };
6static const RTNET_IPv6Addr_t SERVER_IP = { .addr = {0x20,0x01,0x0D,0xB8,0,0,0,0,0,0,0,0,0,0,0,1} }; /* 2001:db8::1 */
7 
8int main(void)
9{
10 RTNET_Initialize(&LOCAL_IP, &LOCAL_MAC);
11 RTNET_AddRoute(&SERVER_IP, 128U, NULL, 1U); /* direct for demo */
12 
13 uint8_t conn_id;
14 if (RTNET_TCP_Connect(&SERVER_IP, 80U, &conn_id) == RTNET_OK) {
15 const uint8_t http_get[] = "GET / HTTP/1.1\r\nHost: demo\r\n\r\n";
16 RTNET_TCP_Send(conn_id, http_get, (uint16_t)sizeof(http_get));
17 RTNET_TCP_Close(conn_id);
18 }
19 
20 for (;;) {
21 RTNET_PeriodicTask();
22 }
23}
24