This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

TCP/UDP receive error in serial_lte_modem

Hi,

In our application, we need the TCP/UDP socket keeps alive even when its receiving is timeout. so we changed the process code in do_tcp_receive() and do_udp_recvfrom() to below:

	if (ret < 0) {
		LOG_WRN("recv() error: %d", -errno);
		//do_socket_close(-errno);
		ret = -errno;
	} else if (ret == 0) {
		/**
		 * When a stream socket peer has performed an orderly shutdown,
		 * the return value will be 0 (the traditional "end-of-file")
		 * The value 0 may also be returned if the requested number of
		 * bytes to receive from a stream socket was 0
		 * In both cases, treat as normal shutdown by remote
		 */
		LOG_WRN("recv() return 0");
		//do_socket_close(0);
	} else {
	

After receive timeout(Log output: recv() error: -60), we found the next receive or send will be not available.

In this situation, how to continue to receive and send without closing and recreating the socket?

Parents Reply Children
No Data
Related