SOCKET PROGRAMMING

how to do socket programming tcpip using azure rtos i want to make ra6m3 renesas board  as a client

  • Hi M3,

    Thanks for reaching out Renesas Community.

    We have some sample project for RA6M3 with azure rtos NETX, can you check this link if there are some projects fit your requirment:

    ra-fsp-examples/example_projects/ek_ra6m3 at 294f649f1aca599b783cbbf115f7da5d88ff113d · renesas/ra-fsp-examples · GitHub

    BR,

    NP_Renesas

  • i want to do ra6m3 renesas board as tcp client through socket program for this i need example

    like port :8080

    ip :192.168.50.33

    socket_create()

    connect() 

  • I want to do simple TCP ip socket program is this setup is correct in this my renesas ra6m3 board is client and my PC is server but in my client nx_tcp_client_socket_connect() this api return error 21 how to solve 

  • Hello sir,

    It seems that you have also posted a similar request where you were using FreeRTOS+TCP stack and it's APIs.

    https://community.renesas.com/mcu-mpu/ra/f/forum/34046/tcp-server-client-socket-programming

    Could you please specify to us which stack you would like to use?

    Best Regards,

    IK

  • SERVER

    #include <stdio.h>
    #include <netdb.h>
    #include <netinet/in.h>
    #include <stdlib.h>
    #include <string.h>
    #include <sys/socket.h>
    #include <sys/types.h>
    #include <unistd.h> // read(), write(), close()
    #define MAX 80
    #define PORT 8080
    #define SA struct sockaddr

    // Function designed for chat between client and server.
    void func(int connfd)
    {
    char buff[MAX];
    int n;
    // infinite loop for chat
    for (;;) {
    bzero(buff, MAX);

    // read the message from client and copy it in buffer
    read(connfd, buff, sizeof(buff));
    // print buffer which contains the client contents
    printf("From client: %s\t To client : ", buff);
    bzero(buff, MAX);
    n = 0;
    // copy server message in the buffer
    while ((buff[n++] = getchar()) != '\n')
    ;

    // and send that buffer to client
    write(connfd, buff, sizeof(buff));

    // if msg contains "Exit" then server exit and chat ended.
    if (strncmp("exit", buff, 4) == 0) {
    printf("Server Exit...\n");
    break;
    }
    }
    }

    // Driver function
    int main()
    {
    int sockfd, connfd, len;
    struct sockaddr_in servaddr, cli;

    // socket create and verification
    sockfd = socket(AF_INET, SOCK_STREAM, 0);
    if (sockfd == -1) {
    printf("socket creation failed...\n");
    exit(0);
    }
    else
    printf("Socket successfully created..\n");
    bzero(&servaddr, sizeof(servaddr));

    // assign IP, PORT
    servaddr.sin_family = AF_INET;
    servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
    servaddr.sin_port = htons(PORT);

    // Binding newly created socket to given IP and verification
    if ((bind(sockfd, (SA*)&servaddr, sizeof(servaddr))) != 0) {
    printf("socket bind failed...\n");
    exit(0);
    }
    else
    printf("Socket successfully binded..\n");

    // Now server is ready to listen and verification
    if ((listen(sockfd, 5)) != 0) {
    printf("Listen failed...\n");
    exit(0);
    }
    else
    printf("Server listening..\n");
    len = sizeof(cli);

    // Accept the data packet from client and verification
    connfd = accept(sockfd, (SA*)&cli, &len);
    if (connfd < 0) {
    printf("server accept failed...\n");
    exit(0);
    }
    else
    printf("server accept the client...\n");

    // Function for chatting between client and server
    func(connfd);

    // After chatting close the socket
    close(sockfd);
    }

    CLIENT

    #include <arpa/inet.h> // inet_addr()
    #include <netdb.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <strings.h> // bzero()
    #include <sys/socket.h>
    #include <unistd.h> // read(), write(), close()
    #define MAX 80
    #define PORT 8080
    #define SA struct sockaddr
    void func(int sockfd)
    {
    char buff[MAX];
    int n;
    for (;;) {
    bzero(buff, sizeof(buff));
    printf("Enter the string : ");
    n = 0;
    while ((buff[n++] = getchar()) != '\n')
    ;
    write(sockfd, buff, sizeof(buff));
    bzero(buff, sizeof(buff));
    read(sockfd, buff, sizeof(buff));
    printf("From Server : %s", buff);
    if ((strncmp(buff, "exit", 4)) == 0) {
    printf("Client Exit...\n");
    break;
    }
    }
    }

    int main()
    {
    int sockfd, connfd;
    struct sockaddr_in servaddr, cli;

    // socket create and verification
    sockfd = socket(AF_INET, SOCK_STREAM, 0);
    if (sockfd == -1) {
    printf("socket creation failed...\n");
    exit(0);
    }
    else
    printf("Socket successfully created..\n");
    bzero(&servaddr, sizeof(servaddr));

    // assign IP, PORT
    servaddr.sin_family = AF_INET;
    servaddr.sin_addr.s_addr = inet_addr("192.168.50.22");
    servaddr.sin_port = htons(PORT);

    // connect the client socket to server socket
    if (connect(sockfd, (SA*)&servaddr, sizeof(servaddr))
    != 0) {
    printf("connection with the server failed...\n");
    exit(0);
    }
    else
    printf("connected to the server..\n");

    // function for chat
    func(sockfd);

    // close the socket
    close(sockfd);
    }

    1.  As i have already mentioned in above code, i have to make renesas ra6m3 board as a client  and my PC as a server so that server client can communicate with each other. so my question is how to make  renesas ra6m3 board as a client would you please provide me sample code