0

I am writing a program using UDT (UDP-based Data Transfer Protocol) sockets. I created socket with default settings (which according to documentation has blocking read/write with infinite timeout). However, during my iterative calls to UD::send() function, after a few first calls I receive the following error for calling send() function:

ETIMEOUT 6003 Timeout on UDT_SNDTIMEO .

according to documentation this error is for when the timeout happens, but in my case the timeout is "-1" which means infinite wait. I checked the parameters of UDT socket with getsockopt() and they are all as supposed to be. ("-1" for UDT_SNDTIMEO & UDT_RCVTIMEO, and "true" for UDT_SNDSYN & UDT_RCVSYN) I am using the latest version of UDT (4.11), and my platform is Linux CentOS 6.4 Any thoughts or input is greatly appreciated.

hanvari
  • 111
  • 1
  • 7
  • Where did you get -1 from? Infinite socket timeouts are usually indicated by zero. – user207421 Jul 13 '16 at 21:11
  • @EJP UDT sockets use -1 for indicating infinite timeout, as in documentation [here](http://udt.sourceforge.net/udt4/index.htm), in functions>setsockopt() reference page. – hanvari Jul 13 '16 at 23:01
  • Very strange. Why did they do that, I wonder, when `::setsockopt()` uses zero? People should not reinvent the wheel. – user207421 Jul 14 '16 at 02:03

0 Answers0