Quantcast
Channel: Renesas Synergy Platform
Viewing all articles
Browse latest Browse all 23645

Forum Post: RE: Enable NetX Socket ADDR_REUSE Flag

$
0
0
If it helps, here is the majority of the code.   LOG() is a message logging routine - mostly just prints to the debug console.  PEND_CHECK() and UPEND_CHECK are just pended and unpended generic status checkers that will log a message using LOG.  PEND will hang if status is not 0.   /* Create a socket.  */    status = nx_tcp_socket_create(&ip_0, &tcpSocket, (CHAR *) "Echo Server Socket",                                  NX_IP_NORMAL, NX_FRAGMENT_OKAY, NX_IP_TIME_TO_LIVE, 512, NX_NULL, NX_NULL);    PEND_CHECK(status, "Socket Create");    /* Bind the port to the TCP socket  */    status =  nx_tcp_client_socket_bind(&tcpSocket, CLIENT_SOCKET, NX_WAIT_FOREVER);    PEND_CHECK(status, "Socket Bind");    LOG(MESSAGE_PRIORITY_MEDIUM, "Trying socket disconnect first...");    status = nx_tcp_socket_disconnect(&tcpSocket, 400);    UPEND_CHECK(status, "Socket Disconnect");    LOG(MESSAGE_PRIORITY_MEDIUM, "Setting up Receive Notify");    status = nx_tcp_socket_receive_notify(&tcpSocket, tcpDataReceived);    UPEND_CHECK(status, "Receive Notify");    /* Loop to create and establish server connections.  */    while(1)    {        status =  nx_tcp_client_socket_connect(&tcpSocket, HOST_IP_ADDRESS, HOST_SOCKET, NX_WAIT_FOREVER);        //        status =  nx_tcp_client_socket_connect(&tcpSocket, HOST_IP_ADDRESS, HOST_SOCKET, 1000);        UPEND_CHECK(status, "Socket Connect");        /* Allocate a packet.  */        LOG(MESSAGE_PRIORITY_MEDIUM,"Allocating Tx Packet");        status =  nx_packet_allocate(&pool_0, &txPacketPtr, NX_TCP_PACKET, NX_WAIT_FOREVER);        /* Check for error.  */        UPEND_CHECK(status, "Allocate TX Packet");        /* Place "Hello_and_Goodbye" in the packet. */        LOG(MESSAGE_PRIORITY_MEDIUM,"Filling packet with data");        UCHAR fakeData[13] = {13,0xfB,0xff,0xff,0x07,0,0,1,123,00,29,01,15};        nx_packet_data_append(txPacketPtr, fakeData, 13, &pool_0, NX_WAIT_FOREVER);        LOG(MESSAGE_PRIORITY_MEDIUM,"Sending packet to host");        status =  nx_tcp_socket_send(&tcpSocket, txPacketPtr, NX_WAIT_FOREVER);        /* Determine if the status is valid.  */        UPEND_CHECK(status, "Send Packet");        // we need to release the packet if there was an error.  If success, the send routine release it.        if(status != NX_SUCCESS){            nx_packet_release(txPacketPtr);        }        status = nx_tcp_socket_disconnect(&tcpSocket, 400);        UPEND_CHECK(status, "Socket Disconnect");        tx_thread_sleep(1000);    }

Viewing all articles
Browse latest Browse all 23645

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>